我有以下課程,其中我有一個 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
}
這樣做的原因是因為我的串列太長而且更容易查看,但我不知道如何實作這一點。
uj5u.com熱心網友回復:
足夠接近。您可以簡單地使用靜態方法:
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",
};
}
}
uj5u.com熱心網友回復:
如果我正確理解了這個問題,您可以有一個類的建構式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);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/523785.html
標籤:C#林克不可数
上一篇:C:如何將二維陣列賦予函式
