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);

浙公网安备 33010602011771号