2016-02-16 40 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