Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Linq中选择不同的列名_C#_Linq - Fatal编程技术网

C# 在Linq中选择不同的列名

C# 在Linq中选择不同的列名,c#,linq,C#,Linq,我的表包含多个列,我需要使用Linq在两个特定列中选择不同的行 我的SQL等价物是: Select distinct Level1Id, Level1Name from levels 我现在做的是: db.levels.GroupBy(c=> c.Level1Id).Select(s => s.First()) 这将检索整行,而不仅仅是Level1Id和Level1Name。如何在此linq查询中指定要检索的列?使用Select,可以在匿名对象中指定列,然后在该对象上使用Dist

我的表包含多个列,我需要使用Linq在两个特定列中选择不同的行

我的SQL等价物是:

Select distinct Level1Id, Level1Name
from levels
我现在做的是:

db.levels.GroupBy(c=> c.Level1Id).Select(s => s.First())

这将检索整行,而不仅仅是Level1Id和Level1Name。如何在此linq查询中指定要检索的列?

使用Select,可以在匿名对象中指定列,然后在该对象上使用Distinct:

  db.levels.Select(l => new{ l.Level1Id, l.Level1Name }).Distinct();

使用Select,可以指定匿名对象中的列,然后在该对象上使用Distinct:

  db.levels.Select(l => new{ l.Level1Id, l.Level1Name }).Distinct();
试一试

db.levels.Selectc=>new{c.Level1Id,c.Level1Name}.Distinct

试试看


db.levels.Selectc=>new{c.Level1Id,c.Level1Name}.Distinct

指定LINQ查询中的两列,选择并创建具有Level1Id和Level1Name属性的匿名对象:

var query = (from v in db.levels
            select new { Level1Id = v.Level1Id, Level1Name = v.Level1Name }).Distinct();
并使用以下各项:

foreach (var r in query){
  int valId = r.LevelId;
  int level = r.Level1Name;
  //do something
}

指定LINQ查询中的两列,选择并创建具有Level1Id和Level1Name属性的匿名对象:

var query = (from v in db.levels
            select new { Level1Id = v.Level1Id, Level1Name = v.Level1Name }).Distinct();
并使用以下各项:

foreach (var r in query){
  int valId = r.LevelId;
  int level = r.Level1Name;
  //do something
}

你离得太近了,还有一步:

var result = db.levels.GroupBy(c=> new { c.Level1Id, c.Level1Name })
               .Select(s => s.First())

关键是:匿名类型使用结构比较,这就是为什么GroupBy或任何其他答案都有效的原因。

您非常接近,还有一步:

var result = db.levels.GroupBy(c=> new { c.Level1Id, c.Level1Name })
               .Select(s => s.First())

关键是:匿名类型使用结构比较,这就是为什么GroupBy或任何其他答案都有效。

现在,对于下面的答案,我想使用变量c还是l:现在,对于下面的答案,我想使用变量c还是l: