0
我有2個集合,並且我通過使用LINQ查詢將問題從一個集合添加到另一個集合時出現問題。從一個集合中選擇第一個結果,使用group by並添加到另一個集合
第一個集合類MyTestCase對象具有帶有時間戳的每臺機器的測試用例結果列表。一臺機器從另一個集合TestResultsInfo中獲得一個或多個測試用例。測試用例結果也是多個實例,結果爲合格或不合格。
我在LINQ查詢下面創建了這個,但是看起來更加硬編碼,如果沒有任何測試的結果,它會拋出異常。
您能否給我建議我指針。
public class MyTestCase
{
public string MachineName { get; set; }
public string TestName { get; set; }
public string Result { get; set; }
public string TimeStamp { get; set; }
}
public class TestResultsInfo
{
public int ID { get; set; }
public string MachineName { get; set; }
public string Test1 { get; set; }
public string Test2 { get; set; }
public string Test3 { get; set; }
public string Test4 { get; set; }
}
List<MyTestCase> TestResultList = GetTestResults();
List<TestResultsInfo> testResultInfo = new List<TestResultsInfo>();
var results = from p in TestResultList
group p by p.MachineName into grps
select new
{
MachineName = grps.Key,
Test1 = grps.FirstOrDefault(pp => pp.TestName == "Test1").Result,
Test2 = grps.FirstOrDefault(pp => pp.TestName == "Test2").Result,
Test3 = grps.FirstOrDefault(pp => pp.TestName == "Test3").Result,
Test4 = grps.FirstOrDefault(pp => pp.TestName == "Test4").Result
};
int testResultId = 1;
foreach (var result in results)
{
TestResultsInfo machineTestInfo = new TestResultsInfo();
machineTestInfo.ID = testResultId++;
machineTestInfo.MachineName = result.MachineName;
machineTestInfo.Test1 = result.Test1;
testResultInfo.Add(machineTestInfo);
}
謝謝阿爾貝託!使用C#5.0解決方案獲取「對象引用未設置爲對象的實例」。異常。我只是改變了(x => x.TestName ==「Test1」爲(x1 => x1.TestName ==「Test1」),因爲它已經使用了錯誤,所以我需要改變其他東西嗎? – Suresh
謝謝它解決了!!! – Suresh
還有一個查詢,以避免重複的問題內容問這裏如果我需要在TestResultsInfo類中添加更多Test,是否可能動態??就像現在我有Test1,2,3,4所以在將來我可能會測試1,2,5,6。感謝您的幫助! – Suresh