linq 如何为IEnumerable赋值

yeotifhr  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(163)

我有以下类,其中有一个IEnumerable列表,如下所示

public class Orders{
 public string No {get;set;}
 public string Id {get;set;}
 public IEnumerable<string> OrderTypes{get;set;} = new List<string>{"order 1","order 
 2","order 3"}
}

不是直接在上面赋值,有没有一种方法可以把它放在一个单独的类中,如下所示

public class OrderTypes(){
 IEnumerable<string> myEnumberable = new List<string>()
myEnumberable.add("Order 1")
myEnumberable.add("Order 3")
myEnumberable.add("Order 4")
myEnumberable.add("Order 5")
myEnumberable.add("Order 6")
}

然后调用上面的函数

public class Orders{
     public string No {get;set;}
     public string Id {get;set;}
     public IEnumerable<string> OrderTypes{get;set;} = OrderTypes
}

这样做的原因是因为我的列表变得太长,它会更容易查看,但我不知道如何实现这一点。

sg24os4d

sg24os4d1#

非常接近。您可以简单地使用静态方法:

public class Orders
{
  public string No {get;set;}
  public string Id {get;set;}
  public IEnumerable<string> OrderTypes{get;set;} = CreateOrderTypes();

  private static IEnumerable<string> CreateOrderTypes()
  {
     return new List<string>
     {
       "Order 1",
       "Order 3",
       "Order 4",
       "Order 5",
       "Order 6",
     };
   }
}

当然,CreateOrderTypes不一定要在同一个类中,也可以移到另一个类中,第二个类必须对第一个类可见。

public class Orders
{
  public string No {get;set;}
  public string Id {get;set;}
  public IEnumerable<string> OrderTypes{get;set;} = OrderTypesFactory.InitOrderTypes();
}

static class OrderTypesFactory
{
  static IEnumerable<string> InitOrderTypes()
  {
     return new List<string>
     {
       "Order 1",
       "Order 3",
       "Order 4",
       "Order 5",
       "Order 6",
     };
   }
}
yk9xbfzb

yk9xbfzb2#

如果我没理解错的话,你可以有一个Orders类的构造函数,然后当你示例化这个类的时候,你可以在里面传递一个IEnumerable的值,然后给它赋值。所以它看起来像这样:

public class Orders
{
    public string No { get; set; }
    public string Id { get; set; }
    public IEnumerable<string> OrderTypes { get; set; }

    public Orders(IEnumerable<string> orderTypes)
    {
        OrderTypes = orderTypes;
    }

}

public class Main
{
    public void Main()
    {
        var orderTypes = new List<string>() { "Your", "values", "Here" };
        var orders = new Orders(orderTypes);
    }
}

相关问题