我有一个类似的文件
56.32 211.398 1 81.0966
56.55 21.6862 1 51.2413
56.48 21.4071 2 298.1962
52.69 211.017 2 262.2705
53.88 211.759 3 258.1490
56.08 21.3705 3 262.2397
Run Code Online (Sandbox Code Playgroud)
我想将它保存到List,删除第三个位置的整数,所以我会得到
56.32, 211.398, 81.0966
56.55, 21.6862, 51.2413
56.48, 21.4071, 298.1962
52.69, 211.017, 262.2705
53.88, 211.759, 258.1490
56.08, 21.3705, 262.2397
Run Code Online (Sandbox Code Playgroud)
我在努力:
List<double[]> fileData = new List<double[]>();
fileData = System.IO.File.ReadAllLines(fileName)
.Select(x => x.Split(new char[] { '\t', ' ' },
StringSplitOptions.RemoveEmptyEntries)
.Select(y => double.Parse(y))
.ToArray())
.ToList();
Run Code Online (Sandbox Code Playgroud)
但我得到以下内容,如何忽略第三个数字?
56.32, 211.398,1, 81.0966
56.55, 21.6862,1, 51.2413
56.48, 21.4071,2, 298.1962
52.69, 211.017,2, 262.2705
53.88, 211.759,3, 258.1490
56.08, 21.3705,3, 262.2397
Run Code Online (Sandbox Code Playgroud)
您可以使用Where()使用lambda 的重载,该lambda获取索引并按该索引过滤:
List<double[]> fileData = System.IO.File.ReadAllLines(fileName)
.Select(x => x.Split(new char[] { '\t', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Where((s, index) => index != 2) // filters out the third column
.Select(y => double.Parse(y))
.ToArray())
.ToList();
Run Code Online (Sandbox Code Playgroud)