web-dev-qa-db-fra.com

Création de la chaîne IEnumerable <KeyValuePair <, chaîne >> Objets avec C #?

À des fins de test, je dois créer un IEnumerable<KeyValuePair<string, string>> objet avec les exemples de paires de valeurs clés suivantes:

Key = Name | Value : John
Key = City | Value : NY

Quelle est l'approche la plus simple pour ce faire?

29

n'importe quel:

values = new Dictionary<string,string> { {"Name", "John"}, {"City", "NY"} };

ou

values = new [] {
      new KeyValuePair<string,string>("Name","John"),
      new KeyValuePair<string,string>("City","NY")
    };

ou:

values = (new[] {
      new {Key = "Name", Value = "John"},
      new {Key = "City", Value = "NY"}
   }).ToDictionary(x => x.Key, x => x.Value);
54
Marc Gravell

Dictionary<string, string> met en oeuvre IEnumerable<KeyValuePair<string,string>>.

8
leppie
var List = new List<KeyValuePair<String, String>> { 
  new KeyValuePair<String, String>("Name", "John"), 
  new KeyValuePair<String, String>("City" , "NY")
 };
5
Rob

Vous pouvez simplement attribuer un Dictionary<K, V> à IEnumerable<KeyValuePair<K, V>>

IEnumerable<KeyValuePair<string, string>> kvp = new Dictionary<string, string>();

Si cela ne fonctionne pas, vous pouvez essayer -

IDictionary<string, string> dictionary = new Dictionary<string, string>();
            IEnumerable<KeyValuePair<string, string>> kvp = dictionary.Select((pair) => pair);
1
Unmesh Kondolikar
Dictionary<string,string> testDict = new Dictionary<string,string>(2);
testDict.Add("Name","John");
testDict.Add("City","NY");

Est-ce bien ce que vous voulez dire ou y a-t-il plus?

1
leeny