我在linq查询表达式和其他lambda表达式中有linq查询但是两者都生成了不同的结果请告诉我什么是查询之间的差异
var result = from c in displayedCompanies
select new[] { Convert.ToString(c.CampusId), c.CampusName, c.CampusCode };
abouve查询生成以下结果
[["10","Ken Mazar Campus","01"],["20","Ken Kabul","02"]]
var result = displayedCompanies.Select(c => new { c.CampusId, c.CampusName, c.CampusCode });
此查询生成以下结果
[{"CampusId":10,"CampusName":"Ken Mazar Campus","CampusCode":"01"},
{"CampusId":20,"CampusName":"Ken Kabul","CampusCode":"02"}]
在将结果转换为json后生成以下结果
答案 0 :(得分:2)
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时,它会创建一个对象,从而返回一个对象数组。
答案 1 :(得分:1)
linq查询
displayedCompanies
.Select (c => new String[] { Convert.ToString (c.CampusId), c.CampusName});
返回没有列名的数组结果,只返回值。
lambda表达
displayedCompanies
.Select (c => new {CampusId= c.CampusId, CampusName= c.CampusName})
返回列名。