C# Linq-C中where子句中单个“=”运算符与“=”运算符的区别是什么

C# Linq-C中where子句中单个“=”运算符与“=”运算符的区别是什么,c#,linq,C#,Linq,通过下面的示例代码,我试图理解where子句中=运算符与==之间的确切区别是什么 我有一个属性为IsActive的项目列表。 当我这样做时: GetAllItemsFromCache-仅返回列表,其中2个为IsActive False,8个为True 有人能解释一下吗?或者,如果您共享一个链接,以便我可以在C中读取详细信息,则使用=运算符的赋值表达式将返回指定的值,因此由于someFlag是布尔值,因此I.IsActive=someFlag返回的值是someFlag的值 以下是语言规范: 简单赋

通过下面的示例代码,我试图理解where子句中=运算符与==之间的确切区别是什么

我有一个属性为IsActive的项目列表。 当我这样做时:

GetAllItemsFromCache-仅返回列表,其中2个为IsActive False,8个为True


有人能解释一下吗?或者,如果您共享一个链接,以便我可以在C中读取详细信息,则使用=运算符的赋值表达式将返回指定的值,因此由于someFlag是布尔值,因此I.IsActive=someFlag返回的值是someFlag的值

以下是语言规范:

简单赋值表达式的结果是指定给的值 左操作数。结果与左操作数和左操作数的类型相同 始终被分类为一个值

更多信息请点击此处:

在C中,变量初始化时使用“=”

int a = 5;
int b = 6;
这里“a”等于5,“b”等于6

当你想决定某事时,使用“==”

int a = 5;
int b = 6;
bool c = true;
if (a == b){
    c = true
}
else{
    c = false
}

当“a”和“b”相等时,这段代码将给出true。

=是赋值。如果不想指定新值,请不要使用它。==如果是比较,则在要检查是否相等时使用它。i.IsActive=someFlag表示将someFlag分配给IsActive,然后返回IsActive的值。但是,如果someFlag为false,则它将不返回任何内容。在这种情况下,它是否会返回所有项目并将其IsActive指定为false?@Sean-这与.ForEachx=>x.IsActive=someFlag的工作方式完全相同?因此基本上var result=GetAllItemsFromCache.ForEachx=>x.IsActive=someFlag.where i=>someFlag==true.ToList;和我的帖子一样?
// using regular == operator just returns as expected based on the flag. No question here
bool someFlag = false;
var result = GetAllItemsFromCache().Where(i => i.IsActive == someFlag).ToList(); 

int a = 5;
int b = 6;
int a = 5;
int b = 6;
bool c = true;
if (a == b){
    c = true
}
else{
    c = false
}