Jos*_*osh 109
你想要List :: GetRange(firstIndex,count).请参阅http://msdn.microsoft.com/en-us/library/21k0e39c.aspx
// I have a List called list
List sublist = list.GetRange(5, 5); // (gets elements 5,6,7,8,9)
List anotherSublist = list.GetRange(0, 4); // gets elements 0,1,2,3)
Run Code Online (Sandbox Code Playgroud)
这就是你要追求的吗?
如果您要从原始列表中删除子列表项,则可以执行以下操作:
// list is our original list
// sublist is our (newly created) sublist built from GetRange()
foreach (Type t in sublist)
{
list.Remove(t);
}
Run Code Online (Sandbox Code Playgroud)
它会像在列表上运行LINQ查询一样简单吗?
List<string> mylist = new List<string>{ "hello","world","foo","bar"};
List<string> listContainingLetterO = mylist.Where(x=>x.Contains("o")).ToList();
Run Code Online (Sandbox Code Playgroud)
使用 LINQ:
List<string> l = new List<string> { "1", "2", "3" ,"4","5"};
List<string> l2 = l.Skip(1).Take(2).ToList();
Run Code Online (Sandbox Code Playgroud)
如果您需要 foreach,则不需要 ToList:
foreach (string s in l.Skip(1).Take(2)){}
Run Code Online (Sandbox Code Playgroud)
LINQ 的优点是,如果您只想跳过某些前导元素,您可以:
List<string> l2 = l.Skip(1).ToList();
foreach (string s in l.Skip(1)){}
Run Code Online (Sandbox Code Playgroud)
即无需关心计数/长度等。