我有一個類,看起來像這樣如何通過集團在IEnumerable的值屬性
public class TestCase
{
public IEnumerable<string> Categories { get; private set; }
}
我的TestCase對象的列表,我希望能夠按類別,例如,如果TestCase在類別中具有值「a」和「b」,該測試用例的實例將在「a」分組和「b」分組中。我對Linq的GroupBy的理解讓我相信它會使用IEnumerable的Equals方法,並且如果按類別分組,我會針對每個測試用例獲得完全不同的組。
我有一個蠻力解決方案,實現了分組我想
var categoryGroups = new Dictionary<string, List<TestCase>>();
foreach (var testCase in testPackage.TestCase)
{
foreach (var category in testCase.Categories)
{
if (!categoryGroups.ContainsKey(category))
{
categoryGroups.Add(category, new List<TestCase>());
}
categoryGroups[category].Add(testCase);
}
}
但是這是醜陋的。有沒有更好的方法來獲得我想要的分組?
爲什麼不使用按功能分組LINQ? – hungryMind