繁体   English   中英

我如何使用Linq方法语法获得独特的结果

[英]How would I achieve a unique result using the Linq method syntax

我在表中有以下数据:

例如数据

0, 'Ford'    
1, 'Toyota, Toyota'  
2, 'BMW'  
3, 'Porsche, Porsche'  
4, 'BMW'

我需要将此数据放在以下类型的List<Tuple<int, string>> carList以便列表中的结果如下所示:

0, 'Ford'    
1, 'Toyota'  
2, 'BMW'  
3, 'Porsche'  
4, 'BMW'

使用以下伪代码:

while (SQLiteDataReader.Read())  
{  
    carList.Add  
    (  
        new Tuple<int, string> (   
                                 SQLiteDataReader.GetInt32(0) ,   
                                 SQLiteDataReader.GetString(1).[Some extension method to produce unique items]
                               );
    )  
}

请注意,当存在重复项(丰田,保时捷)时,重复项将始终具有相同的名称。 即您不会得到像“丰田,福特”之类的东西。

是否有一些扩展方法可以删除重复部分?

这应该可以解决问题:

SQLiteDataReader.GetString(1).Split(',').First().Trim()

如果您希望通过linq查询来完成全部操作,则应该可以使用。

如果您只是想修复您的伪代码,那么scottm的解决方案应该可以使用。

LinqDataContext db = new LinqDataContext();
List<Tuple<int, string>> results = 
   db.Cars.AsEnumerable()
          .Select(c => Tuple.Create(c.id, c.Make.Split(',')[0].Trim()))
          .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM