基本上我正在寻找选择两个字符串列,并把它放到一个单一的字符串数组。现在我不得不做两个选择并合并结果。这不是一个大问题,我认为它看起来很尴尬。有关如何用一个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