将对象添加到ICollection,然后将ICollection添加到List<> ASP.NET

时间:2017-06-24 20:30:18

标签: c# asp.net

我不确定这是否可行或甚至完全合理,但我需要添加一个对象,我们将其称为Person到ICollection列表People并添加集合到列表<> ,以便在列表中收集人员<>这也将包含其他参数。 我不知道该怎么做,但我可以告诉你到目前为止我所描绘的内容。

    public void addPeopleToList(string PersonId)
    {
        Person p = findPerson(PersonId); /*Method that takes the ID and 
                                           returns an object from another List*/ 
        ICollection<People> ICollectionPeople; //Create the ICollection
        ICollectionPeople.Add(p);              //Add Person to Collection
        List.Add(ICollectionPeople);           //Add Collection to List
    }

如果这种方式不合适,我愿意接受所有其他建议。

3 个答案:

答案 0 :(得分:1)

如果您只是告诉我们您想要达到的目标,那可能会更容易,但无论如何:

  1. 您需要为ICollectionPeople分配一个值(也可能值得重命名并遵循命名约定)。也许

    ICollection<People> peopleCollection = new List<People>();
    
  2. 虽然你真的需要那种明确的类型吗?您可以使用var

    1. 您需要创建要添加人员集合的列表实例。也许

      var list = new List<People>();
      
    2. 最后,使用AddRange()之类的

      list.AddRange(peopleCollection);
      

答案 1 :(得分:0)

我认为你需要的是另一个类......就像......

public class PersonWithAttributes : Person {
    // add attribute properties here
}

然后在上面的代码中,您将List更改为List<PersonWithAttributes>类型,而不是.Add您将调用List.AddRange(ICollectionPeople)的集合。之后,您需要遍历List项并添加您正在讨论的额外属性。

答案 2 :(得分:0)

不确定,但看起来你想拥有List<List<People>> ..如果那样,那么你的代码就会缺少集合的初始化。你需要改变一下

public void addPeopleToList(string PersonId)
{
    Person p = findPerson(PersonId); /*Method that takes the ID and 
                                       returns an object from another List*/ 
    List<Person> ICollectionPeople = new List<Person>(); //Create the 
    ICollectionPeople.Add(p);              //Add Person to Collection
    List<List<Person>> personLists = new List<List<Person>>()
    personLists.Add(ICollectionPeople);           //Add Collection to List
}