Comment obtenir un IDictionnay à partir d'IListget Idictionnary from Ilist
Répondre
Vous pouvez utiliser Linq pour obtenir facilement un dictionnaire à partir d'une liste en utilisant la méthode d'extension ToDictionary et en fournissant une expression pour obtenir la clé (par ex.
internal class Program
{
private static void Main(string[] args)
{
IList<Person> list = new List<Person> {new Person("Bob", 40), new Person("Jill", 35)};
IDictionary<string, Person> dictionary = list.ToDictionary(x => x.Name);
}
}
public class Person
{
private readonly int _age;
private readonly string _name;
public Person(string name, int age)
{
_name = name;
_age = age;
}
public int Age
{
get { return _age; }
}
public string Name
{
get { return _name; }
}
}
Sinon, comme Jon l'a souligné, si vous avez besoin d'utiliser une valeur différente pour les entrées dans le dictionnaire, vous pouvez également spécifier une deuxième expression pour obtenir la valeur - comme suit:
IDictionary<string, int> dictionary2 = list.ToDictionary(x => x.Name, x => x.Age);
Il peut être intéressant de noter que vous pouvez fournir une autre projection pour spécifier quelle valeur utiliser. –
Une liste contient un composant et un dictionnaire comporte deux composants. Vous ne pouvez pas simplement les convertir.
Si vous voulez que votre dictionnaire soit <int, object>
, où int
est l'indice des informations contenues dans votre liste ...
Dictionary<int, object> dict = new Dictionary<int, object>();
myList.ForEach(i => dict.Add(myList.IndexOf(i), i)); // Linq magic!
Remplacer object
avec votre type de liste, et assurez-vous que vous êtes using System.Linq;
.
Ou utilisez ToDictionary()
.
- 1. get username from Webservice
- 2. get cursor from array
- 3. Get ImageFormat from System.Drawing.Image.RawFormat
- 4. Get FriendlyIdentifierForDisplay from ClaimedIdentifier dans dotNetOpenId
- 5. Get ViewData IList retour dans ASP.NET postback sur MVC
- 6. Vérification de l'adresse postale, etc. Get County from Zip
- 7. WCF IList sérialisation Problème
- 8. DefaultModelBinder: IList vs Liste
- 9. Linq Select IList
- 10. NSDate from NSString
- 11. IList <Type> à IList <BaseType>
- 12. Liaison Gridview à IList <BusinessObject> qui contient un IList <BusinessObject>
- 13. comportement étrange Linq avec IList/IEnumerable
- 14. Itérer via un IList
- 15. IList type question cast
- 16. À quoi sert IList?
- 17. Indexeur sur IList
- 18. IImage * from IBitmapImage *
- 19. WPF relaycommand from usercontrol
- 20. Comment trier IList <Class>?
- 21. C++/CLI: Implémentation IList et IList <T> (implémentation explicite d'un indexeur par défaut)
- 22. Nhibernate Get and Load
- 23. Nhibernate et WCF IList <> Conflit
- 24. AutoMapper avec IList <Item>
- 25. Fusion d'un IList en IList <t> en utilisant l'instanciation dynamique
- 26. requête IList dans LINQ dans l'application MVC
- 27. Asp.Net - DropDownList.DataValueField dans un IList
- 28. Tests unitaires IList avec CollectionAssert
- 29. IList (Of T) .Sort aide
- 30. System.Diagnostics.Trace.TraceListener UnsafeStringCopy exception from ASP.NET
Cela dépend sur la façon dont vous voulez mapper les éléments de la liste au dictionnaire. S'il vous plaît ajouter plus de contexte. –
ToDictionary(). –
Vous devriez être un peu plus précis ce que vous devez accomplir exactement si vous voulez obtenir une réponse utile. – Koynov