2009-05-29 40 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个或更多字符。其他人被忽略。

相关问题