Asp.net linq查询生成不同的结果
我有linq查询,一个在linq查询表达式中,另一个在lambda表达式中,但两者都生成不同的结果。请告诉我两个查询之间的差异是什么Asp.net linq查询生成不同的结果,asp.net,linq,Asp.net,Linq,我有linq查询,一个在linq查询表达式中,另一个在lambda表达式中,但两者都生成不同的结果。请告诉我两个查询之间的差异是什么 var result = from c in displayedCompanies select new[] { Convert.ToString(c.CampusId), c.CampusName, c.CampusCode }; abouve查询生成以下结果 [{"CampusId":10,"CampusName":
var result = from c in displayedCompanies
select new[] { Convert.ToString(c.CampusId), c.CampusName, c.CampusCode };
abouve查询生成以下结果
[{"CampusId":10,"CampusName":"Ken Mazar Campus","CampusCode":"01"},
{"CampusId":20,"CampusName":"Ken Kabul","CampusCode":"02"}]
此查询生成以下结果
[{"CampusId":10,"CampusName":"Ken Mazar Campus","CampusCode":"01"},
{"CampusId":20,"CampusName":"Ken Kabul","CampusCode":"02"}]
ant将结果转换为json后生成以下结果
select new[] { Convert.ToString(c.CampusId), c.CampusName, c.CampusCode }
上面创建了一个包含3个元素的数组。结果,linq查询返回一个数组
displayedCompanies.Select(c => new { c.CampusId, c.CampusName, c.CampusCode });
上面的查询创建了具有3个属性的anyonymus对象,即CampusId、CampusName、CampusCode等。当转换为json时,它会创建一个对象,并因此返回一个对象数组。简而言之,您正在执行以下操作:
linq查询
displayedCompanies
.Select (c => new String[] { Convert.ToString (c.CampusId), c.CampusName});
它作为数组结果返回,不带列名,只返回值
lambda表达式
displayedCompanies
.Select (c => new {CampusId= c.CampusId, CampusName= c.CampusName})
这将返回列名称。galuano1谢谢您编辑我的问题,先生