在我的应用程序中,我希望程序搜索列表,测试每个列表元素.如果list元素是所需的长度,那么我希望将其插入到新列表中.以下是我已经编写的代码
List<string> foo = new List<string>();
List<string> newFoo = new List<string>();
for (int h = 0; h < l; h++);
{
// Here I want to search through every element of foo and if the element
// length is greater than say 5 i want to add it to the newFoo
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何搜索每个元素和我可以找到的任何示例使用LINQ我不想做,因为我确信有一个更简单的方法.任何帮助非常感谢.
听起来你正在寻找一个foreach循环:
foreach (string element in foo)
{
if (element.Length > 5)
{
newFoo.Add(element);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,假设您从一个空newFoo列表开始,最好使用LINQ:
List<string> newFoo = foo.Where(x => x.Length > 5).ToList();
Run Code Online (Sandbox Code Playgroud)
或者,如果您已有现有列表,则可以使用:
newFoo.AddRange(foo.Where(x => x.Length > 5));
Run Code Online (Sandbox Code Playgroud)
(根据我的经验,创建一个新列表更常见,请注意.)
如果您是C#的新手,在继续使用LINQ,lambda表达式等之前,您应该确保理解第一个表单.
请注意,如果您确实想要使用直接for循环而不是foreach循环,则可以这样做:
for (int i = 0; i < foo.Count; i++)
{
string element = foo[i];
if (element.Length > 5)
{
newFoo.Add(element);
}
}
Run Code Online (Sandbox Code Playgroud)
...但我强烈建议foreach您在任何时候使用迭代序列,而不是真正关心每个条目的索引.