Ich versuche, ein Wörterbuch aus 2 Listen zu erstellen, wo eine Liste Schlüssel enthält und eine Liste Werte enthält. Ich kann es mit for-Schleife tun, aber ich versuche zu finden, ob es eine Möglichkeit gibt, es mit LINQ zu tun. Beispielcode wird hilfreich sein. Vielen Dank!!!!Erstellen Sie ein Wörterbuch mit 2 Listen mit LINQ
Antwort
In .NET4 Sie die eingebaute in Zip
Verfahren zu verschmelzen die beiden Sequenzen von einem ToDictionary
Aufruf gefolgt verwenden:
var keys = new List<int> { 1, 2, 3 };
var values = new List<string> { "one", "two", "three" };
var dictionary = keys.Zip(values, (k, v) => new { Key = k, Value = v })
.ToDictionary(x => x.Key, x => x.Value);
Dies setzt natürlich voraus, dass die Länge jeder Liste gleich ist und dass die Schlüssel eindeutig sind.
UPDATE:This answer ist viel effizienter und sollte für Listen von nicht-trivialen Größe verwendet werden.
Sie können den Index in einem Select
Ausdruck umfassen, um diese effizient:
var a = new List<string>() { "A", "B", "C" };
var b = new List<string>() { "1", "2", "3" };
var c = a.Select((x, i) => new {key = x, value = b[i]}).ToDictionary(e => e.key, e => e.value);
foreach (var d in c)
Console.WriteLine(d.Key + " = " + d.Value);
Console.ReadKey();
Sie können diesen Code verwenden und perfekt arbeiten.
C# Code:
var keys = new List<string> { "Kalu", "Kishan", "Gourav" };
var values = new List<string> { "Singh", "Paneri", "Jain" };
Dictionary<string, string> dictionary = new Dictionary<string, string>();
for (int i = 0; i < keys.Count; i++)
{
dictionary.Add(keys[i].ToString(), values[i].ToString());
}
foreach (var data in dictionary)
{
Console.WriteLine("{0} {1}", data.Key, data.Value);
}
Console.ReadLine();
Output Screen:
Zu umständlich eine Aufgabe – netfed
var dic = keys.Zip(values, (k, v) => new { k, v })
.ToDictionary(x => x.k, x => x.v);
Fügt das wirklich etwas zu [LukeH] (http://stackoverflow.com/users/55847/luke) 's [5 Jahre alte Antwort] (http://stackoverflow.com/a/ 2434647/215380)? – Rawling
- 1. 2 Listen mit LINQ verbinden?
- 2. Erstellen von 2 Listen in einem Wörterbuch
- 3. bevölkern ein Wörterbuch mit Linq
- 4. Python ein Wörterbuch von Listen erstellen
- 5. Merge 2 Listen verschiedener Typen mit LinQ
- 6. Python Unittest - Wörterbuch mit Listen erstellen
- 7. Python - combinig zwei ungleiche Listen und erstellen Sie ein Wörterbuch
- 8. Erstellen Sie ein Dic durch Filtern von zwei Listen mit LINQ
- 9. Können Sie mehrere Listen mit LINQ kombinieren?
- 10. Erstellen Sie Listen mit Java
- 11. Wählen Sie ein Wörterbuch <T1, T2> mit LINQ
- 12. Iterate über einen Wörterbuch mit Listen n Nebenhandlungen erstellen
- 13. Ich konnte nicht 2 Listen in Wörterbuch mit zip() kombinieren
- 14. Erstellen JProperty von Wörterbuch mit LINQ in JSON.NET
- 15. Python 3.5: Erstellen Sie ein Wörterbuch mit Funktionen
- 16. Wie erstelle ich ein verschachteltes Group-by-Wörterbuch mit LINQ?
- 17. Validieren Sie 2 Listen mit FluentValidation
- 18. 2-dimensionale Wörterbuch mit Iteration
- 19. Verschachtelung mehr (mehr als 2) unregelmäßige Listen mit LINQ
- 20. Wie sortiere ich gleichzeitig 2 Listen mit LINQ?
- 21. Konvertieren eine Liste von Listen in ein Wörterbuch von Listen
- 22. Einzeiler ein Wörterbuch mit einem Eintrag erstellen
- 23. Symfony 2 Erstellen Sie ein Formularfeld mit 2 Eigenschaften
- 24. Export-Wörterbuch mit Listen zu CSV
- 25. ein Wörterbuch aus einer Liste <T> mit LINQ
- 26. Schreiben Sie ein Wörterbuch von Listen zu CSV in Python
- 27. Finden Sie 2. max Gehalt mit linq
- 28. Pandas DataFrame aus dem Wörterbuch mit Listen
- 29. Erstellen Sie ein Wörterbuch aus Textdatei
- 30. Unterschied zwischen zwei Listen mit linq
ich eher eine Schleife verwenden würde, anstatt diese zu verwenden. Noch +1 für die Antwort. – Steven
Das war es. Vielen Dank!!! – VNarasimhaM
Warum würden Sie Schleifen anstelle von LINQ verwenden? Ich dachte, dieser Code ist viel besser und lesbarer als die for-Schleife. – VNarasimhaM