我有一個具有默認值和修復順序的字符串類型的IEnumerable。 我有一個隨機順序值的類型模塊列表。 我想擁有一個Module類型的唯一對象列表。 我得到的代碼如下: String類型的唯一對象的一個列表。不同類型的聯合/合併2列表,並返回LINQ的一種類型的列表
有人知道這個訣竅嗎?
static void Main(string[] args) {
List<Module> moduleList = new List<Module>() {
new Module{ ModuleId = 1, ModuleType = "world"},
new Module{ ModuleId = 2, ModuleType = "wayne"},
new Module{ ModuleId = 3, ModuleType = "hallo"},
new Module{ ModuleId = 4, ModuleType = "tes"},
new Module{ ModuleId = 5, ModuleType = "mi"},
new Module{ ModuleId = 6, ModuleType = "haha"},
new Module{ ModuleId = 7, ModuleType = "pipi"},
new Module{ ModuleId = 8, ModuleType = "bla"},
};
// This result is fine that the list is unified and the predefined
// values order is not changed: bla, tes, mi
// BUT I need to return a query with Module objects
var query = GetDefaultValues().Union(moduleList.Select(t => t.ModuleType));
}
private static IEnumerable<string> GetDefaultValues() {
yield return "bla";
yield return "tes";
yield return "mi";
}
在每個lambda中做一個新的Module()並且複製這些值對我來說是NO選項。
UPDATE:
所需的輸出:
模塊列表:
new Module{ ModuleId = 8, ModuleType = "bla"},
new Module{ ModuleId = 4, ModuleType = "tes"},
new Module{ ModuleId = 5, ModuleType = "mi"},
new Module{ ModuleId = 1, ModuleType = "world"},
new Module{ ModuleId = 2, ModuleType = "wayne"},
new Module{ ModuleId = 3, ModuleType = "hallo"},
new Module{ ModuleId = 6, ModuleType = "haha"},
new Module{ ModuleId = 7, ModuleType = "pipi"},
請顯示所需的輸出的完整內容。 – dasblinkenlight
當你不創建它們時,你期望如何獲取模塊?也許工廠是你的選擇?通過這種方式,您可以向工廠提供一串字符串列表,並獲取模塊列表。 – KroaX
@dasblinkenlight完成! – Elisabeth