Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置列表对象c#_C#_Linq - Fatal编程技术网

如何设置列表对象c#

如何设置列表对象c#,c#,linq,C#,Linq,我在控制器上使用两个列表作为方法参数,但现在我遇到了一个问题。。。例如,第一个列表包含三个对象,第二个列表也包含三个对象。好的,我只想从第一个列表中获取每个对象,从第二个列表中获取相应的对象。。如[0]-[0];[1]-[1];[2] [2] 我使用two foreach迭代每个列表,但当我从Turno列表转到第二个对象时,问题就出现了,因为在这之后,当我开始迭代DocenteId列表时,迭代从[0]对象开始,但实际上我不想再次使用DocenteId列表的第一个对象,而是第二个 我使用的if子句

我在控制器上使用两个列表作为方法参数,但现在我遇到了一个问题。。。例如,第一个列表包含三个对象,第二个列表也包含三个对象。好的,我只想从第一个列表中获取每个对象,从第二个列表中获取相应的对象。。如[0]-[0];[1]-[1];[2] [2]

我使用two foreach迭代每个列表,但当我从Turno列表转到第二个对象时,问题就出现了,因为在这之后,当我开始迭代DocenteId列表时,迭代从[0]对象开始,但实际上我不想再次使用DocenteId列表的第一个对象,而是第二个

我使用的if子句只是因为我不能重复与Turno list对象一起出现的TurnoId值。。。当DocenteId列表的值与object[0]-1相同时,就会发生真正的事情;对象[1]-1;对象[1]-2;我希望发生这种情况,但我只想在turnodocente列表中得到三个值,所以这里的问题是我只能切换Turno对象,但不能切换DocenteId对象。。。我的方法现在的结果是有三个值,但对于每个Turno对象,我总是得到DocenteId列表的第一个对象值,我不希望这样

有什么办法得到这个吗

我将感谢你的帮助

控制器方法

foreach (var item in Turno)
{
    foreach (var ite in DocenteId)
    {
        if (!turnodocente.Any(x =>x.TurnoId == item.TurnoId))
        {
            turnodocente.Add(new TurnoDocente
            {
                TurnoId = item.TurnoId,
                DocenteId = ite
            });                             
        }
    }
}

我不知道我是否完全理解您的问题,但是,如果两个列表具有相同数量的对象,我认为解决方案可能如下:

for(int i=0; i<Turno.Count(); i++)
{
    turnodocente.Add(new TurnoDocente
        {
            TurnoId = Turno[i],
            DocenteId = DocenteId[i]
        });  
}

for(int i=0;i考虑到两个列表中的对象数量相同

   var Turno = new List<int>() {1000, 2000, 3000};
        var DocenteId = new List<int> {5000, 6000, 7000};

        var turnodocente = new List<KeyValuePair<int, int>>();

        for (int i = 0; i < Turno.Count; i++)
        {
            if (turnodocente.All(x => x.Key != Turno[i]))
            {
                turnodocente.Add(new KeyValuePair<int, int>(Turno[i], DocenteId[i]));
                Console.WriteLine(turnodocente[i].Key +" " + turnodocente[i].Value);
            }
        }
var Turno=newlist(){1000,2000,3000};
var DocenteId=新列表{5000、6000、7000};
var turnodocente=新列表();
对于(int i=0;ix.Key!=Turno[i]))
{
添加(新的KeyValuePair(Turno[i],DocenteId[i]);
Console.WriteLine(turnodocente[i].Key+“”+turnodocente[i].Value);
}
}

听起来您可能需要

List turno=newlist(){1,2,3};
List docenteId=新列表{“foo”、“bar”、“doe”};
IEnumerable turnodocente=turno.Zip(docenteId,(x,y)=>new turnodocente(){TurnoId=x,docenteId=y});

是的,伙计。它工作得很好。我需要像这样的东西
List<int> turno = new List<int>() {1, 2, 3};
List<string> docenteId = new List<string> {"foo", "bar", "doe"};

IEnumerable<TurnoDocente> turnodocente = turno.Zip(docenteId, (x, y) => new TurnoDocente() {TurnoId = x, DocenteId = y} );