1

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

var result = from c in displayedCompanies
                     select new[] { Convert.ToString(c.CampusId), c.CampusName, c.CampusCode };

以上查询生成以下结果

[["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 之后,将生成以下结果

4

2 回答 2

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 时,它会创建一个对象并因此返回一个对象数组。

于 2013-04-24T06:23:12.037 回答
1

简而言之,您正在做这样的事情:

linq 查询

displayedCompanies
            .Select (c => new String[] { Convert.ToString (c.CampusId), c.CampusName});

它作为没有列名的数组结果返回,只是值​​。

拉姆达表达式

    displayedCompanies
             .Select (c => new {CampusId= c.CampusId, CampusName= c.CampusName})

这将返回列名。

于 2013-04-24T06:54:27.447 回答