2017-10-22 6 views
0

奇数オカレンスの配列の番号が必要です。linqクエリの出力 - > System.Linq.Lookup`2 +グループ化[System.Int32、System.Int32]

これは私のコードです。私はそれが動作していると思うが、私は文字列として期待数2を出力することはできません。私は

System.Linq.Lookup`2+Grouping[System.Int32,System.Int32] 

を代わりに持っています。問題を解決するための

int[] array = { 0, 0, 1, 1, 2 }; 
var result = array.GroupBy(a => a) 
        .Select(o => o) 
        .Where(o => (o.Count() % 2 == 1)) 
        .FirstOrDefault(); 
Console.WriteLine(result.ToString()); 

答えて

1

このお試しください: `array.GroupBy(A => a)の .FirstOrDefault(O => o.Count()%:あなたは` FirstOrDefault`のための述語を渡すことで、よりよいを行うことができます

var result = array.GroupBy(a => a) 
    .Where(o => o.Count() % 2 == 1) 
    .FirstOrDefault().Key; 
+0

を2 == 1).Key –

0

あなたのアプローチは間違っている、グループ化された値がGroupingのインスタンスであるので、あなたはキーで適切な値を選択する必要があります。

int[] array = { 0, 0, 1, 1, 2 }; 
var result = array.GroupBy(a => a) 
        .Where(o => (o.Count() % 2 == 1)) 
        .Select(o => o.Key); 
string resultString = string.Join(", ", result.ToArray()); 
Console.WriteLine(resultString); 

したがって、この例では、戻り値として2つが必要です。

関連する問題