C# 使用.NET+;创建项目列表时是否可以使用匿名方法;林克?
我正在尝试做以下工作,但不确定如何C# 使用.NET+;创建项目列表时是否可以使用匿名方法;林克?,c#,.net,linq,anonymous-methods,C#,.net,Linq,Anonymous Methods,我正在尝试做以下工作,但不确定如何 var foo = new Foo { Id = MyRandom<int>(1, 100), Name = MyRandom<string>(5,20), MyPets = MyRandom<bool>() ? new IList<Pet> (petList => {
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
};
var foo=新foo
{
Id=MyRandom(1100),
Name=MyRandom(5,20),
MyPets=MyRandom()?
新IList
(petList=>
{
var x=MyRandom(1,4);
对于(int i=0;i
所以..这会创建一个随机的宠物列表
有什么想法吗?没有
相反,您可以创建lambda表达式,然后立即调用它:
MyRandom<bool>() ? null : (new Func<IList<Pet>>(() => { return ... })()
MyRandom()?null:(新函数(()=>{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
};
var foo=新foo
{
Id=MyRandom(1100),
Name=MyRandom(5,20),
MyPets=MyRandom()?
可枚举范围(0,MyRandom(1,4))
.选择(=>新宠物(MyRandom(1,15)))
托利斯先生()
:null
};
是的,这只是psedou代码…为了让大家明白这一点…我想,但我注意到了,这让我很恼火。。。sorry@SLaks-如何返回随机添加的项目的新列表?@Slaks-耶:)这就是我所尝试的。但是我需要做什么才能将一项添加到petlist?即,petlist变量是什么?@Pure:你需要在lambda.hmmm中声明变量。我只是不明白:(这是我最新的尝试:@Pure:你需要通过在末尾添加()
来调用委托。