开始一天的简单linq查询
我有一个类,它包含一个int、字符串和指向其他类的指针。在选择.Distinct之前,我正在尝试提取字符串并对其执行子字符串操作。我的LINQ代码看起来不错开始一天的简单linq查询,linq,c#-4.0,Linq,C# 4.0,我有一个类,它包含一个int、字符串和指向其他类的指针。在选择.Distinct之前,我正在尝试提取字符串并对其执行子字符串操作。我的LINQ代码看起来不错 List<string> crops = (from m in cropTypes let cw = m.CropName let kw = cw.Substring(0, cw.LastIndexOf(")") + 1) select(kw).Di
List<string> crops = (from m in cropTypes
let cw = m.CropName
let kw = cw.Substring(0, cw.LastIndexOf(")") + 1)
select(kw).Distinct()).ToList();
我也试过了
var crop = …
List<string> crops = crop.ToList();
当我尝试编译时,我得到
无法隐式转换类型
System.Collections.Generic.List<System.Collections.Generic.IEnumerable<char>> to System.Collections.Generic.List<System.Collections.Generic.IEnumerable<string>>
在托利斯特线上
m、 CropName绝对是一个字符串
为什么编译器认为我使用的是字符列表而不是字符串列表,以及如何解决这个问题
没有什么比一个简单的问题更能在一天的开始就让你难堪的了 试试看
List<string> crops = (from m in cropTypes
let cw = m.CropName
let kw = cw.Substring(0, cw.LastIndexOf(")") + 1)
select kw).Distinct().ToList();
如果对字符串调用Distinct,实际上是在枚举字符串的字符。试试这个IEnumerable crops=。。。。并移除。托利斯;因为您正在对字符串对象执行操作。设cw=m.CropName,此处CropName为字符串类型,不可IEnumerable。所以,如果您对字符串执行Distinct,那么它将返回IEnumerable`试试这个lambda表达式。cropTypes.Selectc=>c.CropName.Substring0,c.CropName.LastIndexOf+1.Distinct.ToList;请仔细查看并编辑,以便浏览问题列表的人能够真正了解您的问题。