【发布时间】:2018-09-14 15:45:51
【问题描述】:
我有一个人对象
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" });
我正在尝试通过传递 FirstName 和 LastName (Tim, Corey) 来查询它
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'
【问题讨论】:
-
字符串是
IEnumerable<char>。 -
那是因为当您将 FirstOrDefault 添加到您的 FirstName 时,它是字符串类型,它将返回字符串中的第一个字符
-
您还期待什么结果?你有名字(蒂姆),你还需要什么?