我有以下TestDataDto。 TestDataDto而不IsEnable循環列表和字典的有效和更好的方法
public class TestDataDto { public int ProgramId { get; set; } public string ProgramName { get; set; } public bool IsEnable { get; set; } }
列表被設置
var testDatas = new List<TestDataDto> { new TestDataDto {ProgramId = 1, ProgramName = "Abc"}, new TestDataDto {ProgramId = 2, ProgramName = "xyz"}, new TestDataDto {ProgramId = 3, ProgramName = "jkl"}, };
測試數據指定的字典其中節目ID是使
var enableTestData = new Dictionary<int, bool>(); enableTestData[1] = false; enableTestData[2] = true; enableTestData[3] = true;
現在,我設置IsEnable屬性y根據enableTestData字典中的相應程序ID確定testDatas的項目。
我可以這樣做。
foreach (var b in enableTestData)
{
foreach (var testDataDto in testDatas)
{
if (testDataDto.ProgramId == b.Key)
{
testDataDto.IsEnable = b.Value;
}
}
}
但似乎並沒有成爲有效的方式或者說代碼不好看:-(。有人可以請指導我什麼將是實現這一目標的最佳方式是什麼?
問候
這是上面答案(現已刪除)的痛苦剽竊,與馬辛的回答相比,仍然是非常低效和危險的。 –
+你在做2查找:) – MarcinJuraszek
是的,但正如你所說@MarcinJuraszek他們是O(1)_ [這在技術上是不正確的] _所以我們不在乎。 – serhiyb