c# - 获取文本框的第一个中间和最后 10 行
问题描述
我在文本框上有文本,我想在文本框中获取前 10 行中间 10 行和最后 10 行。
下面的示例使用 2 以不提供长样本数据
样本数据
1.2
1.44
1.68
1.44
1.44
1.2
1.68
1.68
1.68
1.68
预期产出
1.2
1.44
1.44
1.2
1.68
1.68
我的尝试。
var source = txtProcessData.Lines;
var first = source.Take(2);
var last = source.Skip(source.Length - 2);
txtProcessData.Text = String.Join(Environment.NewLine, first);
但有错误:
错误 2 参数 2:无法从 'System.Collections.Generic.IEnumerable' 转换为 'string[]'
注意数据线总是偶数,因为我有条件。我也在样本上使用 2。
我怎样才能做到这一点?
解决方案
你可以尝试一个简单的Where
:
var source = txtProcessData.Lines;
var result = source
.Where((value, index) => index <= 1 || // first 2 lines
index >= source.Count - 2 || // last 2 lines
index == source.Count / 2 || // middle 2 lines
index == source.Count / 2 - 1);
// ToArray() - Early versions C# want string[] for string.Join
txtProcessData.Text = String.Join(Environment.NewLine, result.ToArray());
推荐阅读
- matlab - 在 MATLAB 中读取多帧 tiff
- javascript - charcode 与原始整数和存储值的比较给出不同的结果
- amazon-web-services - 捕获选择中的值并使用 jq 在顶层对象中使用它
- react-native - 无法在 iOS 模拟器上运行 expo 项目
- asynchronous - 如何在 Rust 中组合两个异步函数
- git - Visual Studio 代码中的 Git 表示即使没有更改,文件也会被修改
- vim - Vim 中的 :terminal 颜色方案与 Vim 或主机终端不同
- autodesk-forge - Forge Viewer 的性能
- pandas - 多个条件 np.where
- android - Flutter - 如何从相机获取实时输入并扫描任何物体?