C# Distinct未为表提供Distinct行
Distinct未为表提供Distinct行C# Distinct未为表提供Distinct行,c#,asp.net,linq,C#,Asp.net,Linq,Distinct未为表提供Distinct行 ObjectParameter statusCode = new ObjectParameter("StatusCode", typeof(int)); ObjectParameter statusMessage = new ObjectParameter("StatusMessage", typeof(string)); return Context.p_Countries_List(userName, statusCode, statusM
ObjectParameter statusCode = new ObjectParameter("StatusCode", typeof(int));
ObjectParameter statusMessage = new ObjectParameter("StatusMessage", typeof(string));
return Context.p_Countries_List(userName, statusCode, statusMessage)
.Select(c => new Countries_List_ResultModel()
{
currency = c.currency
}).Distinct().ToList();
您必须重写
Equals
,以便Distinct
知道如何区分一个实例和另一个实例
public class Countries_List_ResultModel
{
public override bool Equals(object obj)
{
var item = obj as Countries_List_ResultModel;
if (item == null)
{
return false;
}
return true; // Add the appropriate logic.
}
public override int GetHashCode()
{
// Return the hashcode to quickly identify different instances.
return this.currency.GetHashCode();
}
}
更多信息。有两个
Distinct
方法重载:
Distinct<TSource>(this IEnumerable<TSource> source);
Distinct<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource> comparer);
我找到了答案,这是有效的
ObjectParameter statusCode = new ObjectParameter("StatusCode", typeof(int));
ObjectParameter statusMessage = new ObjectParameter("StatusMessage", typeof(string));
return Context.p_Currencies_List(userName, statusCode, statusMessage).Distinct().Select(c => new Countries_List_ResultModel()
{
currency = c
}).ToList();
…命名惯例,为什么要放弃标准的C#one<代码>货币是唯一设置的属性吗?
ObjectParameter statusCode = new ObjectParameter("StatusCode", typeof(int));
ObjectParameter statusMessage = new ObjectParameter("StatusMessage", typeof(string));
return Context.p_Currencies_List(userName, statusCode, statusMessage).Distinct().Select(c => new Countries_List_ResultModel()
{
currency = c
}).ToList();