我有一个人对象
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" });
我正在尝试通过传递名字和姓氏(蒂姆,科里)来查询它
return people.Where(names => names.FirstName == FirstName && names.LastName == LastName).FirstOrDefault().FirstName;
这将返回输出为
"Tim"
当我在末尾添加.FirstOrDefault()时。它带来了奇怪的输出
return people.Where(names => names.FirstName == FirstName && names.LastName == LastName).FirstOrDefault().FirstName.FirstOrDefault();
84 'T'
任何人都可以解释输出是如何产生的。
84'T'
答案 0 :(得分:6)
您正在.FirstOrDefault()
的{{1}}上呼叫FirstName
。这将导致在string
实现中调用.FirstOrDefault()
。这将导致返回该IEnumberable<char>
中的第一个字符或默认字符。
数值string
显示84
的ASCII值。
http://www.rapidtables.com/code/text/ascii-table.html
答案 1 :(得分:0)
是-T
本质上是string
,因此,当您调用IEnumerable<char>
时,您将返回FirstOrDefault()
中的第一个char
。>