Wie zu verwenden Aggregat-Methode von Dictionary<> in C#?
Ich bin ein Anfänger in C#. Ich habe ein Wörterbuch wie dieses :
{
{"tom", "student"},
{"rob", "teacher"},
{"david", "lawyer"}
}
Möchte ich, um diese Zeile :
tom = student, rob = teacher, david = lawyer
Will ich mit Aggregat Erweiterung Methode der dictionary<>
aber wenn ich es so mache :
Console.WriteLine(dic.Aggregate((a,b) => (a.Key + " = " + a.Value + ", " + b.Key + " = " + b.Value)));
Bekomme ich diesen Fehler :
Nicht in der lambda-Ausdruck, Stellvertretung Art.
So scheint es, dass mache ich es falsch. Also kann mir jemand sagen, wie man diese Methode verwenden?
- Ich bin nicht dieses posting als Antwort, da Sie die Frage über die korrekte Verwendung von
Aggregate
, aber in diesem Szenario würde ich lehnen Sie sich auf gegen die folgenden:string.Join(", ", dic.Select(x => string.Format("{0} = {1}", x.Key, x.Value)))
. Einfach Zuordnung der einzelnenkvp
in die gewünschte Zeichenfolge und ruftstring.Join()
scheint der einfachste Ansatz für mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aggregat ist nicht eine Methode aus dem Wörterbuch, es ist eine Erweiterung-Methode für
IEnumerable<T>
. Wenn Sie bauen wollen, aggregiert string:Erklärung:
Durch die Art und Weise können Sie verwenden Sie folgenden code zum erstellen erforderlich Zeichenfolge:
dic.Aggregate(" WHERE ",(sb, kvp) => sb.AppendFormat("{0} = {1}", kvp.Key, kvp.Value),sb => sb.ToString());
dic.Aggregate(new StringBuilder("WHERE "), (sb, kvp) => sb.AppendFormat("{0}{1} = {2}", sb.Length > 6 ? ", " : "", kvp.Key, kvp.Value), sb => sb.ToString()));
Aber ich würd generierte Parameter, die separat aus und dann erstellt query-stringString.Format("... WHERE {0}", parameters)