Asp.net linq查询生成不同的结果

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":

我有linq查询,一个在linq查询表达式中,另一个在lambda表达式中,但两者都生成不同的结果。请告诉我两个查询之间的差异是什么

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谢谢您编辑我的问题,先生