[英]Selecting Distinct Values from a List
這是我的清單代碼:
public static List<Int32> getValueFilterItems()
{
List<Int32> gridValues = new List<Int32>();
ASPxGridView gridViewPromo = (ASPxGridView)gridViewPromo.GetRowValues(4, "Value");
int val = Convert.ToInt32(gridViewPromo);
gridValues.Add(val);
return gridValues;
}
我想只從列表中返回DISTINCT值,因為有很多重復的值。 我該怎么辦?
謝謝
您可以使用Distinct
:
return gridValues.Distinct().ToList()
一種更有效的方法是使用HashSet<Int32>
:
public static List<Int32> getValueFilterItems()
{
HashSet<Int32> values = new HashSet<Int32>();
ASPxGridView gridViewPromo = (ASPxGridView)gridViewPromo.GetRowValues(4, "Value");
int val = Convert.ToInt32(gridViewPromo);
values.Add(val);
return values.ToList();
}
編輯 :您還使用gridViewPromo
即使它未初始化。 您必須先對其進行初始化,然后才能使用它:
ASPxGridView gridViewPromo = (ASPxGridView) whateverYourGridIs;
int val = Convert.ToInt32(gridViewPromo.GetRowValues(4, "Value"));
最后說明:如果選擇單個值,為什么仍然需要收集?
簡單的方法是使用:
return gridValues.Distinct().ToList();
盡管HashSet不需要兩者都不同。
您的函數不會在列表中返回多個值,我想您是從類似這樣的外部調用此函數的
HashSet<Int32> values = new HashSet<Int32>();
var value1 = getValueFilterItems(4, "Value");
var value2 = getValueFilterItems(5, "Value");
//HashSet returns true from Add method if element added, returns false if element already exists
values.Add(value1);
values.Add(value2);
修改后的功能應與HashSet一起使用
public static Int32 getValueFilterItems(int visibleIndex, string fieldNames)
{
ASPxGridView gridViewPromo = (ASPxGridView)gridViewPromo.GetRowValues(visibleIndex,fieldNames);
return Convert.ToInt32(gridViewPromo);
}
將返回值更改為
return gridValues.Distinct.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.