2016-02-16 39 views
1

我需要获取Windows窗体应用程序中文本框中多行文本的前10行和最后10行。获取文本框中的前10行和后10行c#

ex.(textbox values) 
Chicken 
Chinese 
Beef 
Pork 
Mutton 
Fish 
Prawn 
Vegetarian 
-- 
--- 
+0

向我们展示你得到了什么? – Stefan

+0

@Stefan我想第一个10行,以及最后10行字符串values.I与 –

回答

2

您可以使用LINQ的一个要求:

var source = myTextBox.Lines; 

    var first = source.Take(10); 
    var last = source.Skip(source.Length - 10); 

现在,让我们打印出第一值代入,比如说,myReportTextBox

myReportTextBox.Text = String.Join(Environment.NewLine, first); 
+0

加上一个,我从来不知道在C#中有一个叫做TextBox的行。 – Moons

+0

谢谢你的工作。 –

+0

@Dimtry这种方式可以得到文本框中的前10个和最后一个元素。但是,这如何适用于windows.form.TextBox?我用魔杖在文本框中获取元素并打印。以这种方式我得到System.Linq.Enumerable值。我如何转换为字符串? –

7
var r1 = textBoxValues.Select(t=>t.values).Take(10); 

var r2 = textBoxValues.Select(t=>t.values).Reverse().Take(10); 
+0

我尝试认为OP需要获得线路,即首先是“textBoxValues”。也许是“分裂”? – Stefan

+0

优雅和易于阅读LINQ,但你会如何将这应用到Windows.Forms.TextBox?可能使用像'TextBox.Lines.AsEnumerable()' – dlatikay

+0

你们都是对的,我假设值存储在texBoxValues –

0

System.Windows.Forms.TextBox继承TextBoxBase,其具有一个属性:

public string[] Lines { get; set; } 

可以查询该属性为它的长度,和当其具有多于10个元素(它是一个纯然后你可以从那里取前十和倒十。如果它是第一个十近十不重叠,那么你将需要确保数组数为至少20