2012-04-12 4 views
0

ich Fehler aus der Leitung hatteРow 2 bis 4 des Objektelements erhalten

Dictionary<int, string> viewBusinesAndCountLeft = grptemp.Take(4).ToDictionary(x => x.Count, x => x.BusinessCategoryName); 

Fehler: „Das Element mit demselben Schlüssel wurde bereits hinzugefügt“

Wie geht das?

var grptemp = (from adsBusines in m_adsRepository.SaleBusinesAds 
       group adsBusines by adsBusines.BusinessCategory.Name 
       into grp 
       select new 
       { 
        BusinessCategoryName = grp.Key, 
        Count = grp.Select(x => x.BusinessCategory.ChildItems.Count()).Distinct().Count() 
       }).Take(8); 

Dictionary<int, string> viewBusinesAndCountLeft = grptemp.Take(4).ToDictionary(x => x.Count, x => x.BusinessCategoryName); 
Dictionary<int, string> viewBusinesAndCountRigth = grptemp.Skip(4).Take(4).ToDictionary(x => x.Count, x => x.BusinessCategoryName); 
+1

2 verschiedene Kategorien gleiche Zählung haben könnten so der Fehler ein normal ist, auch Sie deutliche stellen Sie zählen erinnern, nachdem es –

+0

bitte holen mir Beispiel – Mediator

+0

Der Code gibt Ihnen eine .Count von verschieden. Zählwerte Das ist seltsam, bist du sicher, dass du das willst? – Andy

Antwort

1

Sie verwenden die Zählung als Schlüssel für das Wörterbuch, das bedeutet, dass Sie diese Ausnahme werfen, wenn Sie zwei Kategorien geschehen mit dem gleichen Zählwert zu finden.

Wenn ich verstehe, was Sie versuchen, richtig zu machen, sollten Sie die "Geschäftskategorie" als Schlüssel für das Wörterbuch und die Zählung als Wert haben.

z.

Dictionary<string, int> viewBusinesAndCountLeft = grptemp.Take(4).ToDictionary(x => x.BusinessCategoryName, x => x.Count); 
0

ein Dictionary<T,U> Deklarieren bedeutet ein Wörterbuch mit Schlüssel vom Typ T (in diesem Fall int) - und der Schlüssel in einem Wörterbuch muss eindeutig sein.

Wahrscheinlich möchten Sie, dass der Schlüssel die Zeichenfolge und der Wert die Anzahl ist. Versuchen Sie, Ihre Argumente vermittlungs

Dictionary<string, int> viewBusinesAndCountLeft = 
    grptemp.Take(4).ToDictionary(x => x.BusinessCategoryName, x => x.Count); 
Verwandte Themen