Huzefa Kagdi
Huzefa Kagdi

Reputation: 159

C# - Dictionary<key, value> to List<T>

I want to map my Dictionary<int, string> to a List<Customer> where Customer has two properties Id and Name. Now I want to map my integer Key of the dictionary to the List<Customer>[i].Key property and Value of the dictionary to List<Customer>[i].Name iteratively.

Need help for the same.

Upvotes: 1

Views: 13401

Answers (4)

Dennis Traub
Dennis Traub

Reputation: 51624

Given myDictionary is populated and myList ist the target list:

myDictionary.ToList()
            .ForEach(x => 
                     myList.Add( new Customer() {Id = x.Key, Name = x.Value} )
                    );

Upvotes: 0

John Hartsock
John Hartsock

Reputation: 86862

var myList = (from d in myDictionary
             select new Customer {
               Key = d.Key,
               Name = d.Value
             }).ToList();

Upvotes: 2

Reed Copsey
Reed Copsey

Reputation: 564333

You could do something like:

 List<Customer> list = theDictionary
                         .Select(e => new Customer { Id = e.Key, Name = e.Value })
                         .ToList();

Upvotes: 3

Jon
Jon

Reputation: 437336

var dict = new Dictionary<int, string>(); // populate this with your data

var list = dict.Select(pair => new Customer { Id = pair.Key, Name = pair.Value }).ToList();

You can also use an appropriate Customer constructor (if available) instead of the example property setter syntax.

Upvotes: 12

Related Questions