c# 好用的语法

1.空条件运算符 (?.) 可以简化对可能为 null 的对象的成员访问。

string name = person?.Name ?? "Unknown";

这段代码的逻辑可以理解为:

  • 如果 person 是 null,或者 person.CreatePerson 是 null,则返回 "Unknown"

  • 否则,返回 person.CreatePerson 的值。

2.C# 8.0 引入了索引器和范围,使数组和集合的操作更加方便。

var numbers = new int[] { 0, 1, 2, 3, 4, 5 };
var slice = numbers[1..4]; // 获取索引 1 到 3 的元素

 3.取2位小数不四舍五入

            var d1 = 2.889;
            var ddd = Math.Truncate(d1 * 100) / 100;

4.从数组中判断以什么开头的数据

            var str1 = "37130200100002R11C001";
            var list = new List<string>
            {
                "37130200100002R11",
                "37130200100002R112",
                "37130200100002R113"
            };
            var ttt = list.Where(x => str1.StartsWith(x)).ToList();

5.空值赋值


            ABC person = null;

            string name = person?.CreatePerson ?? "Unknown";  person 或者createPerson为空的时候赋值 unknown

 6.坐标转geometry ,geometr转成字符串

   引用 

using NetTopologySuite.Geometries;
using NetTopologySuite.IO;

//// 经纬度数组 (经度, 纬度)
double[] coordinates = { 116.3975, 39.9087 }; // 例如北京的经纬度
// 创建点
Point point = new Point(coordinates[0], coordinates[1]);
Console.WriteLine($"Point: {point}");
 
// 创建GeoJSON写入器
var writer = new GeoJsonWriter();

// 将几何对象转换为GeoJSON字符串
string geoJson = writer.Write(point);
Console.WriteLine("GeoJSON: " + geoJson);



//线
// 经纬度数组 (经度, 纬度)
double[][] coordinates2 = new double[][]
{
new double[] { 116.3975, 39.9087 }, // 北京
new double[] { 121.4737, 31.2304 }  // 上海
};
// 创建线
var lineString = new LineString(coordinates2.Select(c => new Coordinate(c[0], c[1])).ToArray());
Console.WriteLine($"LineString: {lineString}");
// 转换为GeoJSON
var geoJsonWriter2 = new GeoJsonWriter();
string geoJson2 = geoJsonWriter2.Write(lineString);
Console.WriteLine("GeoJSON: " + geoJson2);




//// 经纬度数组(经度, 纬度)
double[][] coordinates3 = new double[][]
{
new double[] { 116.3975, 39.9087 }, // 北京
new double[] { 121.4737, 31.2304 }, // 上海
new double[] { 113.2644, 23.1291 }, // 广州
new double[] { 116.3975, 39.9087 }  // 回到北京
};

// 创建多边形
var polygon = new Polygon(new LinearRing(coordinates3.Select(c => new Coordinate(c[0], c[1])).ToArray()));

Console.WriteLine($"Polygon: {polygon}");
// 转换为GeoJSON
var geoJsonWriter = new GeoJsonWriter();
string geoJson3 = geoJsonWriter.Write(polygon);
Console.WriteLine("GeoJSON: " + geoJson3);

 

posted @ 2025-02-05 18:21  今晚再打老虎  阅读(33)  评论(0)    收藏  举报