var list = _appData.GetAdvanceSearchData(Convert.ToInt16(collection["Product"])).ToList();
List<ProductMaterial> materials = list.Select(x => x.ProductMaterial).Distinct().ToList();
我得到的例外:
Cannot implicitly convert type 'System.Collections.Generic.List<string>' to 'System.Collections.Generic.List<Crescent.LinqModel.ProductMaterial>'
应该做什么?
产品材料类:
public class ProductMaterial
{
public string ProductMaterials {get;set;}
}
list.Select(x =&gt; x.ProductMaterial).Distinct()。ToList()给我数组字符串虽然已经转换为列表,我想要'ProductMaterial'类型的结果。
答案 0 :(得分:0)
请改用:
var materials = list.Select(x => x.ProductMaterial).Distinct().ToList();
或者:
List<string> materials = list.Select(x => x.ProductMaterial).Distinct().ToList();
唯一不同的是materials
变量的类型。
答案 1 :(得分:0)
我想你想要DistinctBy
List<ProductMaterial> materials =
list.DistinctBy(x => x.ProductMaterial).ToList();
您可以使用该扩展方法或搜索某些other implementation here
答案 2 :(得分:0)
查询list.Select(x => x.ProductMaterial).Distinct().ToList();
返回List<string>
而不是List<ProductMaterial>
。
您可以使用列表而不是List<ProductMaterial>
。
我不确定你想要什么。如果指定了列表的数据类型,我可以给出更准确的意见。