首页 > 解决方案 > 获取文本框的第一个中间和最后 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。

我怎样才能做到这一点?

标签: c#.netwinforms

解决方案


你可以尝试一个简单的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());

推荐阅读