名称在 linq 中不具有

  • 本文关键字:linq linq distinct
  • 更新时间 :
  • 英文 :


我尝试选择名称,但现在有重复的名称,我想通过不同的方式选择这些名称,我在linq中是如何做到这一点

string data2 = "[";
T1 DB = new T1();
var te = DB.tblVni;
foreach (var c in te)
{
    data2 += "'" + c.Name + "',";
}
data2 = data2.Substring(0, data2.Length - 1);
data2 += "]";

这像这样回报我

['DPSB

','MV','PSB','PSB','PSB','','PSB','PSB','MV','','MV','PSB','','MV','','PSB','MV',

因为我不想重复这些名字

任何解决方案

你可以替换

foreach (var c in te)
{
    data2 += "'" + c.Name + "',";
}

通过以下代码片段。

foreach (var c in te.Select( x => x.Name ).Distinct())
{
    data2 += "'" + c + "',";
}

您还可以使用现有设施并将整个部分重写为

T1 DB = new T1();
var te = DB.tblVni;
string data2
    = String.Format("[{0}]",
          String.Join( ",", te.te.Select( x => x.Name ).Distinct() ) );

这不需要手动删除终端逗号。但是,总的来说,确实不应该手动生成 Json,有现有的工具,比如这个。

试试这个

var data2 = String.Format("[{0}]", te.Select(i => i.Name).Distinct().Aggregate((v, n) => String.Format("'{0}','{1}'", v,n)));

输出:

['DPSB','MV','PSB']

相关内容

  • 没有找到相关文章

最新更新