C# 语法 :----- IEnumerable<Person> people = new List<Person>();

标签 c#

我理解前两个陈述。但是,对于第三种说法,我想不通人是什么类型的人? IEnumerable(person) 还是 List(person)?我假设幕后有转换。有人可以解释一下语句 3 中使用了哪些技术吗?

  1. IEnumerable(Person) people = new IEnumerable(Person)();
  2. List(Person) people = new List(Person)();
  3. IEnumerable(Person) people = new List(Person)();

最佳答案

IEnumerable<Person> people = new IEnumerable<Person>();

无效。 IEnumerable是一个接口(interface),它不能被实例化。

后两个有效:

List<Person> people = new List<Person>();
IEnumerable<Person> people = new List<Person>();

上面的第二个例子只是将集合转换为 IEnumerable<Person> .这意味着功能 List provides 不可用,除非您将集合转换回列表。简而言之,这并不是那么有用。转换为 IEnumerable在定义方法时很有用,例如:

void DoSomethingWithPeople(IEnumerable<Person> people)
{
    foreach(var person in people)
        Console.WriteLine(person.Name);
} 

在这里,我们不关心集合是列表、集合、链表等,我们只关心people这个事实。可以枚举(即可枚举)。

关于C# 语法 :----- IEnumerable<Person> people = new List<Person>();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638769/

相关文章:

c# - 简单的无锁秒表

c# - 在线ClickOnce部署应用程序并在桌面/开始菜单上放置一个图标

c# - 放大Unity时如何使RTS相机平滑

c# - 将 IConfigurationSection 转换为 IOptions

c# - 如何从 asp.net 输入\t

c# - 如何在 UWP 应用程序中打印?

c# - 获取表单实例的函数

javascript - AJAX Post 请求发送重复请求

c# - 仅当实例出现一次时才匹配正则表达式

c# - SubSonic 3 简单存储库问题