在“添加监视”窗口中选中时,以下代码显示正确的值(100
),但该值未分配给变量_countVar
,该值是0
,这是不正确的。
有人可以告诉我代码中的错误吗:
string _strVariable = "New York";
var _countVar = nestList
.SelectMany((List<object> w) => w)
.Count(w => w == _strVariable);
最佳答案
好吧,如果w
在
...
.SelectMany((List<object> w) => w) // w is object
.Count(w => w == _strVariable); // if w has the same reference as _strVariable
您实际上是比较参考,而不是
object
的值。如果string
不共享相同的引用(未引用),则将它们视为不同的引用:object x = "abc";
// some manipulations to prevent the compiler to intern x and y strings
string y = ("abc" + " ").Trim(); // "abc", note that y has the same value as x
Console.Write(x == y ? "equals" : $"{x} <> {y}");
结果:
abc <> abc
要比较
string
的值,请输入Intern
:string _strVariable = "New York";
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable));
关于c# - 添加监视窗口显示值,但该值未分配给变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60501147/