C# for和if循环的Linq实现

C# for和if循环的Linq实现,c#,.net,linq,loops,C#,.net,Linq,Loops,下面的代码段检查eCode(一个整数)是否等于list1中的任何元素,如果是,则执行某些操作。我的问题如下。。这个的linq实现是什么?我是C#和Linq的新手,不知道如何继续 for (int i = 0; i < list1.Count; i++) { if (list1[i] == eCode) { // do something } } for(int i=0;ix==eCode); 我认为下面的代码片段就是您要查找的内容: List<

下面的代码段检查
eCode
(一个整数)是否等于
list1
中的任何元素,如果是,则执行某些操作。我的问题如下。。这个的linq实现是什么?我是C#和Linq的新手,不知道如何继续

for (int i = 0; i < list1.Count; i++)
{
    if (list1[i] == eCode)
    {
       // do something
    }
}
for(int i=0;i
这是使用LINQ扩展方法,而不是实际的LINQ

if (list1.Any(i => i == eCode))
{
    // do something
}

这是使用LINQ扩展方法,而不是实际的LINQ

if (list1.Any(i => i == eCode))
{
    // do something
}

您可以保留循环,但可以将条件语句转换为LINQ
Where
子句:

foreach (var item in list1.Where(l => l == eCode))
{
    // Do something with each item
}

您可以保留循环,但可以将条件语句转换为LINQ
Where
子句:

foreach (var item in list1.Where(l => l == eCode))
{
    // Do something with each item
}

这实际上与from相同,但我有时喜欢这种语法。通常用于更复杂的事情,但仍然:

foreach (var item in from l in list1
                     where l == eCode
                     select l)
{
    // Do something with each item
}

这实际上与from相同,但我有时喜欢这种语法。通常用于更复杂的事情,但仍然:

foreach (var item in from l in list1
                     where l == eCode
                     select l)
{
    // Do something with each item
}

我想下面的片段就是你要找的:

List<int> i = new List<int>() { 1, 2, 3 };
int eCode = 3;
bool result = i.Any(x => x == eCode);
List i=newlist(){1,2,3};
int eCode=3;
bool result=i.Any(x=>x==eCode);

我认为下面的代码片段就是您要查找的内容:

List<int> i = new List<int>() { 1, 2, 3 };
int eCode = 3;
bool result = i.Any(x => x == eCode);
List i=newlist(){1,2,3};
int eCode=3;
bool result=i.Any(x=>x==eCode);

LINQ不是用于产生副作用,而是用于过滤数据。如果您想更改
If
条件中的任何内容,则不应使用LINQ。LINQ不是用于产生副作用,而是用于过滤数据。如果您想更改
If
条件中的任何内容,您不应该使用LINQ.Right,但我们已经知道这些项是
int
s,因此等式检查很简单。看起来重要的是与
eCode
匹配的项目的索引,你不能用纯LINQ对这些索引做任何有趣的事情。他不是在看索引,他是在用索引获取值,然后比较它-除非我误读了发布的代码,这是完全可能的!list1[i]返回该列表项的值。啊,可能我对
for
循环的使用读得太多了,然后是索引
i
。我在想,“如果索引不重要,那么这只是一个
foreach
循环,因此索引一定很重要!”。然而,当然,很可能是询问者不知道更好的方法。我相信你是对的,所以我投了更高的票。是的,但我们已经知道项目是
int
s,所以相等性检查很简单。看起来重要的是与
eCode
匹配的项目的索引,你不能用纯LINQ对这些索引做任何有趣的事情。他不是在看索引,他是在用索引获取值,然后比较它-除非我误读了发布的代码,这是完全可能的!list1[i]返回该列表项的值。啊,可能我对
for
循环的使用读得太多了,然后是索引
i
。我在想,“如果索引不重要,那么这只是一个
foreach
循环,因此索引一定很重要!”。然而,当然,很可能是询问者不知道更好的方法。我相信你是对的,所以我投了更高的票。如果要求至少有一项符合标准,那么这是可行的,但问题中的循环在每次匹配时都会运行
做点什么
。如果要求至少有一项符合标准,那么这是可行的,但问题中的循环技术上是在每场比赛中运行
做点什么