答案 0 :(得分:22)
尽管LINQ确实使这更简单,更通用而不仅仅是列表(使用Skip
和Take
),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个或更多字符。其他人被忽略了。