一个快速的投影问题。我在一种测试方法中具有一组对象(unchangeditems),并希望确保它们与我的“预期”元素匹配。如图所示,您可以按元素进行操作,但这并不理想。我确信可以使用投影沿着下面的底线到达字符串变量(LMAA_CODE-不要问大写!)。我会很感激的。

谢谢!

// Works but not very elegant
            Assert.AreEqual(result.unchangedItems[0].LMAA_CODE,expectedunchangedItems[0]);
            Assert.AreEqual(result.unchangedItems[1].LMAA_CODE,expectedunchangedItems[1]);
            Assert.AreEqual(result.unchangedItems[2].LMAA_CODE,expectedunchangedItems[2]);
            Assert.AreEqual(result.unchangedItems[3].LMAA_CODE,expectedunchangedItems[3]);

        // ?Can something like this be done?  eg result.unchangedItems => result.unchangedItems.LMAA_CODE
        Assert.IsTrue(Enumerable.SequenceEqual(result.unchangedItems.LMAA_CODE, expectedunchangedItems));

最佳答案

您已经快要在那里了,只需向LMAA_CODE添加一个投影:

 Assert.IsTrue(Enumerable.SequenceEqual(result.unchangedItems.Select( x=> x.LMAA_CODE),
                                        expectedunchangedItems));

关于c# - C#:投影-以与List <string>相同的方式访问对象集合中的给定string属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5945038/

10-09 16:39