2009-05-29 90 views

回答

15

即使LINQ確實讓這個簡單而不僅僅是列表(使用SkipTake)更普遍,List<T>GetRange方法,它是一件輕而易舉的:

List<string> newList = oldList.GetRange(index, count); 

(其中index是的索引第一個要複製的元素,而count是要複製多少個項目。)

當你說「字符串的二維列表」 - 你的意思是一個數組?如果是這樣,你的意思是一個鋸齒狀陣列(string[][])或矩形陣列(string[,])?

+1

這是列表的淺表副本(這不會將列表複製到新列表中,它具有引用)。所以你必須小心 – 2013-11-20 11:57:01

0

我不知道我得到的問題,但我會是一個示例使用看Array.Copy功能(如果你指的是陣列字符串列表)

這裏C#在.NET 2.0框架:

String[] listOfStrings = new String[7] 
           {"abc","def","ghi","jkl","mno","pqr","stu"}; 
String[] newListOfStrings = new String[3]; 

// copy the three strings starting with "ghi" 
Array.Copy(listOfStrings, 2, newListOfStrings, 0, 3); 

// newListOfStrings will now contains {"ghi","jkl","mno"} 
0

的FindAll將讓你寫一個謂詞來確定哪些字符串複製:

List<string> list = new List<string>(); 
list.Add("one"); 
list.Add("two"); 
list.Add("three"); 

List<string> copyList = list.FindAll(
    s => s.Length >= 5 
); 

copyList.ForEach(s => Console.WriteLine(s)); 

這會打印出「三個」,因爲它的長度是5個或更多字符。其他人被忽略。