Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IEnumerable代码解释?_C#_Ienumerable - Fatal编程技术网

C# IEnumerable代码解释?

C# IEnumerable代码解释?,c#,ienumerable,C#,Ienumerable,我是编程新手。我无法理解下面的代码 我们在这里使用IEnumerable的具体原因是什么 返回新列表{}-这是匿名方法吗 为什么我们不能使用list作为返回类型而不是IEnumerable 对不起,如果这是一个愚蠢的问题,但我真的很感激如果有人打破了下面的代码 private IEnumerable<Customer> GetCustomers() { return new List<Customer> {

我是编程新手。我无法理解下面的代码

  • 我们在这里使用IEnumerable的具体原因是什么
  • 返回新列表{}-这是匿名方法吗
  • 为什么我们不能使用list作为返回类型而不是IEnumerable
  • 对不起,如果这是一个愚蠢的问题,但我真的很感激如果有人打破了下面的代码

        private IEnumerable<Customer> GetCustomers()
        {
            return new List<Customer>
            {
                new Customer { Id = 1, Name = "John Smith" },
                new Customer { Id = 2, Name = "Mary Williams" }
            };
    
    private IEnumerable GetCustomers()
    {
    返回新列表
    {
    新客户{Id=1,Name=“John Smith”},
    新客户{Id=2,Name=“Mary Williams”}
    };
    
  • 我们在这里使用
    IEnumerable
    的具体原因是什么
  • 不知道。问问编写它的人。使用接口的一个原因是隐藏实现细节。消费者不必知道它是列表、数组或其他任何东西。有些人将它用作“安全机制”,因此你不能插入项,但显然可以对对象进行强制转换,这不是真正的解决方案

  • 返回新列表{}
    -这是匿名方法吗
  • 不,它是具有两个对象初始值设定项的集合初始值设定项

  • 为什么我们不能使用list作为返回类型而不是
    IEnumerable

  • 您可以。

    Q.我们在这里使用IEnumerable的具体原因是什么

    当函数返回列表时,它将被类型转换为IEnumerable,在本例中IEnumerable的用法如下: a) 您的函数将返回只读列表。您无法从返回的集合中添加或删除任何内容。 b) IEnumerable是所有可迭代集合实现的接口。因此,基本上List返回IEnumerable的类型,这是多态性的一个示例。如果集合对象正在实现IEnumerable,则始终可以返回它

    返回新列表{}-这是一个匿名方法吗

    不。这不是匿名方法。这是初始化集合对象并在其中添加值的样式之一

    为什么我们不能使用list作为返回类型而不是IEnumerable


    您可以使用列表作为返回类型,但在这种情况下,使用此方法的客户端将有一个选项来添加/删除要返回的客户。对于IEnumerable,集合将是只读的。

    如果右键单击列表并转到定义,您将看到该列表实现了IEnumerable;换句话说,List可以变形为IEnumerable。您也可以将列表作为返回类型返回。问题1和3(请每个问题只发布一个问题)的可能重复项基于意见。问题2是集合初始值设定项。