将列表的一部分复制到新列表

时间:2009-05-29 15:59:09

标签: c# list string

嘿所有人。有没有办法只将一个(或更好的,两个)维度字符串列表的一部分复制到新的临时字符串列表中?

3 个答案:

答案 0 :(得分:22)

尽管LINQ确实使这更简单,更通用而不仅仅是列表(使用SkipTake),List<T>具有GetRange方法,这使得它变得轻而易举:

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

(其中index是要复制的第一个元素的索引,count是要复制的项目的数量。)

当你说“二维字符串列表”时 - 你的意思是一个数组?如果是这样,你的意思是锯齿状数组(string[][])还是矩形数组(string[,])?

答案 1 :(得分:0)

我不确定我是否得到了这个问题,但我会查看 Array.Copy 函数(如果是通过字符串列表引用数组

以下是在.NET 2.0 Framework中使用C#的示例:

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"}

答案 2 :(得分: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个或更多字符。其他人被忽略了。