我有一个人物
people.Add(new Person { FirstName = "Tim", Id = 1, LastName = "Corey" });
people.Add(new Person { FirstName = "Sue", Id = 2, LastName = "Storm" });
people.Add(new Person { FirstName = "Bilbo", Id = 3, LastName = "Baggins" });
Run Code Online (Sandbox Code Playgroud)
我试图通过传递FirstName和LastName来查询它(Tim,Corey)
return people.Where(names => names.FirstName == FirstName && names.LastName == LastName).FirstOrDefault().FirstName;
Run Code Online (Sandbox Code Playgroud)
这会将输出返回为
"Tim"
Run Code Online (Sandbox Code Playgroud)
当我在最后添加.FirstOrDefault()时.它带来了奇怪的输出
return people.Where(names => names.FirstName == FirstName && names.LastName == LastName).FirstOrDefault().FirstName.FirstOrDefault();
84 'T'
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释输出是如何产生的.
84'T'
您所呼叫.FirstOrDefault()上FirstName这是一个string.这将导致在.FirstOrDefault()实现上调用IEnumberable<char>.这将导致返回第一个或默认字符string.
数值84显示ASCII值T.
http://www.rapidtables.com/code/text/ascii-table.html