我是C#中的初學者,所以我有一個問題,我的數據庫中有很多名字我的問題是如何使腳本顯示名稱的數據LINQ中雙打? 下面一個例子:如何使用LINQ刪除陣列中的重複項
string[] names = {hello, hello, stack, stack, overflow, overflow};
我不知道如何做到這一點的人可以創建一個簡單的腳本,顯示它是如何做的。我可以自己解決其他問題。
我是C#中的初學者,所以我有一個問題,我的數據庫中有很多名字我的問題是如何使腳本顯示名稱的數據LINQ中雙打? 下面一個例子:如何使用LINQ刪除陣列中的重複項
string[] names = {hello, hello, stack, stack, overflow, overflow};
我不知道如何做到這一點的人可以創建一個簡單的腳本,顯示它是如何做的。我可以自己解決其他問題。
我想,這也應該工作;
names.Distinct().ToList().ForEach(n => Console.WriteLine(n));
在這裏你去:
string[] names = {"hello", "hello", "stack", "stack", "overflow", "overflow"};
var distinctNames = names.Distinct();
foreach(String distinctName in distinctNames)
Console.WriteLine(distinctName);
您可以使用Distinct。
試試這個:
string[] names = {"hello", "hello", "stack", "stack", "overflow", "overflow"};
var uniqueNames = (from c in names select c).Distinct();
foreach(String s in uniqueNames) Console.WriteLine(uniqueNames);
非常感謝我所需要的。 – user2117650 2013-02-28 00:15:17
儘管一些答案被標記爲接受,我想我可以添加有關意想不到的問題一些重要的信息,你可以在情況有你有在數組對象,你需要區分遇到要依據關於該對象的某些屬性。
LINQ的鮮明()函數可能無法在這種情況下正常工作,所以你應該使用的解決方法是這樣的(這給你同樣的結果):
var elems = someArray.GroupBy(x=>x.RpopertyToCompare).Select(y=>y.First());
你可以在這裏閱讀更多:http://blog.jordanterrell.com/post/LINQ-Distinct()-does-not-work-as-expected.aspx
var duplicates = suppliers_arr
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
if(duplicates.Count() > 0){
foreach (var d in duplicates)
{
ModelState.AddFormError(string.Format("{0} is duplicated",d.ToString()));
}
}else{
//no duplicates
}
不要以爲你需要'.ToList()'。 – 2013-02-28 01:08:31
@FabianTamp:我在linq鍵盤上沒有'ToList()'進行測試。它說''System.Collections.Generic.IEnumerable'不包含'ForEach'的定義,並且沒有擴展方法'ForEach'接受類型'System.Collections.Generic.IEnumerable '的第一個參數' –
Kaf
2013-02-28 08:38:48
ForEach()在列表上,而不在IEnumerable 上,所以如果您想使用ForEach方法,則需要.ToList()。或者,你可以像平常一樣寫一個foreach(){}。 –
2013-02-28 09:39:45