此問題與此處答案中的代碼示例有關(https://stackoverflow.com/a/70694640/2287576)。
我現在有這個建構式:
public List<MSAHistoryItemStudent>[] StudentItems { get; set; }
public MSAHistoryWeek()
{
TalkItems = Enumerable.Range(1, 6).Select(x => new MSAHistoryItemTalk()).ToList();
Teaching = Enumerable.Range(1, 3).Select(x => string.Empty).ToList();
StudentItemStudyNumbers = Enumerable.Range(1, 5).Select(x => string.Empty).ToList();
StudentItemDescriptions = Enumerable.Range(1, 5).Select(x => string.Empty).ToList();
StudentItems = new List<MSAHistoryItemStudent>[]
{
new List<MSAHistoryItemStudent>(),
new List<MSAHistoryItemStudent>(),
new List<MSAHistoryItemStudent>(),
};
foreach(var studentitems in StudentItems)
{
for(int i = 0; i < 5; i )
{
studentitems.Add(new MSAHistoryItemStudent());
}
}
}
我無法制定出Enumerable.Range預先創建StudentItems我想要的方法:
- 我想要一個 3 的陣列
List<MSAHistoryItemStudent>。 - 我希望每個陣列都有 5 個
MSAHistoryItemStudent元素。
uj5u.com熱心網友回復:
由于串列數量相對較少,您可以將呼叫替換new為呼叫Enumerable.Range:
StudentItems = new
{
Enumerable.Range(1, 5).Select(x => new MSAHistoryItemStudent()).ToList(),
Enumerable.Range(1, 5).Select(x => new MSAHistoryItemStudent()).ToList(),
Enumerable.Range(1, 5).Select(x => new MSAHistoryItemStudent()).ToList(),
};
順便說一句,如果你把它放在某個地方:
public static List<T> MakeN<T>(int n) where T:new()
=> Enumerable.Range(1,n).Select(x => new T()).ToList();
然后你可以簡化這些呼叫:
TalkItems = MakeN<MSAHistoryItemTalk>(6);
Teaching = new string[3].ToList();
StudentItems = new
{
MakeN<MSAHistoryItemStudent>(5),
MakeN<MSAHistoryItemStudent>(5),
MakeN<MSAHistoryItemStudent>(5),
};
以及您使用的其他任何地方Enumerable.Range.Select.。
...除了你在哪里做string(我已經給出了另一種形式)。
uj5u.com熱心網友回復:
只需在呼叫中嵌套另一個這些Enumerable.Range(...)...呼叫Select。
StudentItems =
Enumerable.Range(1, 3).Select(x =>
Enumerable.Range(1, 5).Select(y =>
new MSAHistoryItemStudent()
).ToList()
).ToArray();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410881.html
標籤:
上一篇:如何將變數設定為串列的索引?
下一篇:搜索PSQLJSONB元組陣列
