将列表的一部分复制到新列表
答
即使LINQ确实让这个简单而不仅仅是列表(使用Skip
和Take
)更普遍,List<T>
有GetRange
方法,它是一件轻而易举的:
List<string> newList = oldList.GetRange(index, count);
(其中index
是的索引第一个要复制的元素,而count
是要复制多少个项目。)
当你说“字符串的二维列表” - 你的意思是一个数组?如果是这样,你的意思是一个锯齿状阵列(string[][]
)或矩形阵列(string[,]
)?
答
我不知道我得到的问题,但我会是一个示例使用看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"}
答
的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个或更多字符。其他人被忽略。
这是列表的浅表副本(这不会将列表复制到新列表中,它具有引用)。所以你必须小心 – 2013-11-20 11:57:01