0

好吧,这个问题/疑问的标题我认为这是不言自明的,但是这里有这个想法(使用简单的术语):我有文件(在一个项目中),其中包含一个类(每个类)对象和方法(来自模型),其中一种方法返回一个列表。我想创建另一个类来生成一个包含上述所有列表的新列表。如果这主要在 C# 中是可能的,我将不胜感激您对如何创建它的观点。在此先感谢您的提示、帮助和善意!!!

我希望你能理解我,因为我很不擅长描述问题。:D

4

1 回答 1

0

您正在寻找的是 SelectMany:

#region Terrible Object

var hasAllTheItems =
        new[]
        {
                new[]
                {
                        new
                        {
                                Name = "Test"
                        }
                },
                new[]
                {
                        new
                        {
                                Name = "Test2"
                        },
                        new
                        {
                                Name = "Test3"
                        }
                }
        };

#endregion Terrible Object

var a = hasAllTheItems.Select(x => x.Select(y => y.Name));
var b = hasAllTheItems.SelectMany(x => x.Select(y => y.Name));
var c = hasAllTheItems.Select(x => x.SelectMany(y => y.Name));
var d = hasAllTheItems.SelectMany(x => x.SelectMany(y => y.Name));

Assert.AreEqual(2, a.Count());
Assert.AreEqual(3, b.Count());
Assert.AreEqual(2, c.Count());
Assert.AreEqual(14, d.Count());

A: {{Test}, {Test2, Test3}}

B: {Test, Test2, Test3}

C: {{T, e, s, t}, {T, e, s, t, 2, T, e, s, t, 3}}

D: {T, e, s, t, T, e, s, t, 2, T, e, s, t, 3}

于 2013-10-24T18:35:47.143 回答