How can I use LINQ to populate a collection inside a class?

c#, linq

Solution

Use ToList:

 foreach (string applicationName in applicationNames)
 {
 _uow.Applications.Add(
    new Application 
    { 
        Name = applicationName, 
        ModifiedDate = DateTime.Now,
        TestAccounts = (from  testAccountName in testAccountNames
                        select new TestAccount
                        { 
                           Name = testAccountName , 
                           ModifiedDate = DateTime.Now 
                       }).ToList()
    });
 }

Problem

I have the following: ``` foreach (string applicationName in applicationNames) { _uow.Applications.Add( new Application { Name = applicationName, ModifiedDate = DateTime.Now, TestAccounts = (from testAccountName in testAccountNames select new TestAccount { Name = testAccountName , ModifiedDate = DateTime.Now }) }); } ``` The problem with this is that it gives me an error in the VS2012 IDE on the select. Here it says: ``` Error 3 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Relational.Models.TestAccount>' to 'System.Collections.Generic.ICollection<Relational.Models.TestAccount>'. An explicit conversion exists (are you missing a cast? ``` Here is the Application class: ``` public partial class Application { public Application() { this.TestAccounts = new List<TestAccount>(); } public int ApplicationId { get; set; } public string Name { get; set; } public virtual byte[] Version { get; set; } public System.DateTime ModifiedDate { get; set; } public virtual ICollection<TestAccount> TestAccounts { get; set; } } ```

Original source