基本上我正在尋找選擇兩個字符串列,並把它放到一個單一的字符串數組。現在我不得不做兩個選擇併合並結果。這不是一個大問題,我認爲它看起來很尷尬。有關如何用一個linq語句完成相同目標的任何建議?下面是我用來測試的測試用例:將使用LINQ的select中的兩列結果合併到一個數組中?
[TestFixture]
public class test {
public class Values {
public string Present { get; set; }
public string Previous { get; set; }
public bool Flag { get; set; }
}
[Test]
public void test1() {
var list = new List<Values> {
new Values { Present = "present1", Previous = "previous1", Flag = false },
new Values { Present = "present2", Previous = "previous2", Flag = false },
new Values { Present = "present3", Previous = "previous3", Flag = true },
new Values { Present = "present4", Previous = "previous4", Flag = true }
};
var r1 = list.Where(c => c.Flag).Select(c => c.Present);
var r2 = list.Where(c => c.Flag).Select(c => c.Previous);
var combined = r1.Concat(r2);
Assert.AreEqual(4, combined.Count());
}
}
很清晰美觀,不看到有什麼理由誠實地在這裏改變任何事情。 – Tigran 2012-08-01 20:32:00
您的斷言將失敗,因爲'.Union()'刪除重複項。也許你想['.Concat()'](http://msdn.microsoft.com/en-us/library/bb302894.aspx)? – gilly3 2012-08-01 20:35:19
我不知道.Union()刪除重複項。 – 2012-08-01 20:38:32