Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# Linq获取数据表索引并更新集合_C#_Linq - Fatal编程技术网

C# Linq获取数据表索引并更新集合

C# Linq获取数据表索引并更新集合,c#,linq,C#,Linq,我有一个包含在列表中的类集合,它告诉我对excel工作表做了哪些更改。例如,如果excel工作表中的某个单元格发生了更改,则该类包含一个属性,如rowid、行索引和单元格地址。此外,我还有一个datatable,它反映了excel工作表上的内容,只是带有一个标识列。我试图通过linq语句更新类集合,该语句查找ID匹配的datatable的索引,并将其设置到集合中。到目前为止,我有一个linq语句,它为行索引返回0 ExcelCollectionDetail.Join(Datatable.As

我有一个包含在列表中的类集合,它告诉我对excel工作表做了哪些更改。例如,如果excel工作表中的某个单元格发生了更改,则该类包含一个属性,如rowid、行索引和单元格地址。此外,我还有一个datatable,它反映了excel工作表上的内容,只是带有一个标识列。我试图通过linq语句更新类集合,该语句查找ID匹配的datatable的索引,并将其设置到集合中。到目前为止,我有一个linq语句,它为行索引返回0

  ExcelCollectionDetail.Join(Datatable.AsEnumerable(),
                ExcelCellChange => ExcelCellChange.Id,
                dt => dt.Field<string>(id),
                (ExcelCellChange , dt) => new { CellChange, dt})
            .Select((Obj, index) => new { Obj, index })
            .Where(x => x.dt.Field<string>(id) == x.Obj.ExcelCellChange.Id).ToList()
            .ForEach(x => {
              int RowIndex = x.index;
              x.Obj.CellChange.CellRowIndex = RowIndex;
            });
ExcelCollectionDetail.Join(Datatable.AsEnumerable(),
ExcelCellChange=>ExcelCellChange.Id,
dt=>dt.字段(id),
(ExcelCellChange,dt)=>new{CellChange,dt})
.Select((Obj,index)=>new{Obj,index})
.Where(x=>x.dt.Field(id)==x.Obj.ExcelCellChange.id).ToList()
.ForEach(x=>{
int RowIndex=x.index;
x、 Obj.CellChange.CellRowIndex=行索引;
});

您在这一句话中做了很多不同的事情。把它分成不同的部分,找出错误发生的地方。一旦您这样做了,您就可以创建一个更具体的问题。我正在尝试根据集合中的匹配id查找Datatable行的索引,Datatable行idForEach返回
void
。只显示属于您问题的代码。