大家好。有没有一种方法可以将只有部分元素的单个(或最好是二维)字符串列表复制到一个新的临时字符串列表中?
虽然LINQ确实比仅限于列表(使用Skip
和Take
)更容易和更通用,但是List<T>
有GetRange
方法可以轻松实现:
List<string> newList = oldList.GetRange(index, count);
(其中index
是要复制的第一个元素的索引,count
是要复制的元素数目。)
当您说“两维字符串列表”时,您是否指的是数组?如果是这样,您是指不规则数组(string[][]
)还是矩形数组(string[,]
)?
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"}
FindAll 可以让你编写一个 Predicate 来确定要复制哪些字符串:
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));
这将打印出“three”,因为它有5个或更多字符。其他的将被忽略。