使用.NET+Linq创建项目列表时,是否可以使用匿名方法

本文关键字:可以使 方法 是否 创建 NET+Linq 项目 列表 使用 | 更新日期: 2023-09-27 18:00:41

我正在尝试执行以下操作,但不确定如何。。。

var foo = new Foo
    {
        Id = MyRandom<int>(1, 100),
        Name = MyRandom<string>(5,20),
        MyPets = MyRandom<bool>() ?
            new IList<Pet>
            (petList =>
                { 
                   var x = MyRandom<int>(1, 4);
                   for (int i = 0; i < x; i++)
                   {
                       petList.Add(new Pet(MyRandom<string>(1,15));
                   }
                }
            : null
    };

所以。。这会创建一个宠物的随机列表。

有什么想法吗?

使用.NET+Linq创建项目列表时,是否可以使用匿名方法

否。

相反,您可以创建一个lambda表达式,然后立即调用它:

MyRandom<bool>() ? null : (new Func<IList<Pet>>(() => { return ... })()

你试过这样的东西吗?

var foo = new Foo
    {
        Id = MyRandom<int>(1, 100),
        Name = MyRandom<string>(5,20),
        MyPets = MyRandom<bool>() ?
            Enumerable.Range(0, MyRandom<int>(1, 4))
                .Select(_ => new Pet(MyRandom<string>(1,15)))
                .ToList()
            : null
    };
相关文章: