我有一個列表,我從db中選擇用戶,每次sql查詢以特定值運行並在時間中選擇一個用戶,因此我無法在sql中限制相同的用戶。如何從列表中刪除相同的項目<string>?
我有一個列表:
list[0] = "jerry"
list[1] = "tom"
list[2] = "jerry"
我想任何(第一或最後沒有在我的情況關係)從列表中刪除。
感謝
我有一個列表,我從db中選擇用戶,每次sql查詢以特定值運行並在時間中選擇一個用戶,因此我無法在sql中限制相同的用戶。如何從列表中刪除相同的項目<string>?
我有一個列表:
list[0] = "jerry"
list[1] = "tom"
list[2] = "jerry"
我想任何(第一或最後沒有在我的情況關係)從列表中刪除。
感謝
LINQ可以解決這個問題:
List<string> names = new List<string> { "Tom", "Jerry", "Tom" };
IQueryable<string> distinctItems = names.Distinct();
如果你想有一個列表類型,只需調用ToList():
distinctItems.ToList();
下面是來自MSDN一個例子。
編輯:非LINQ例子(使用載有()從List class):
List<string> names = new List<string> { "Tom", "Jerry", "Tom" };
List<string> distinctNames = new List<string>();
foreach (var name in names)
{
if (!distinctNames.Contains(name))
{
distinctNames.Add(name);
}
}
您可以使用DISTINCT( )LINQ擴展。
var list = new List<string> { "Tom", "Jerry", "Tom" };
var uniqueList = list.Distinct();
可以使用list.distinct();
,沒有LINQ? – eugeneK 2010-10-04 10:26:36
沒有LINQ?使用傳統的搜索和刪除方法。 – Nayan 2010-10-04 10:32:27
請參閱@ lee的使用HashSet而不是LINQ的答案。 – 2010-10-04 10:33:01