我在表格中有以下数据:
e.g。数据
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]
);
)
}
请注意,如果有重复项目(丰田,保时捷),复制将始终使用相同的名称。即你不会得到像'丰田,福特'这样的东西。
是否有一些扩展方法会删除重复部分?
答案 0 :(得分:4)
这应该可以解决问题:
SQLiteDataReader.GetString(1).Split(',').First().Trim()
答案 1 :(得分:3)
如果您希望通过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();