gpt4 book ai didi

c# - System.Data.DataRowCollection' 不包含 'ToList' 的定义并且没有扩展方法 'ToList' 接受第一个参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:35 25 4
gpt4 key购买 nike

我真的很困惑如何解决这个问题

 public bool DeleteVegetationZone(ref Assessment objAssessment, int VegetationZoneIDToDelete, string UserFullname, ref string ErrorMessage)
{
string RowFilter = @"VegetationZoneID=" + Convert.ToString(VegetationZoneIDToDelete);
Assessment.tblVegetationZoneRow[] VegetationZoneRows = (Assessment.tblVegetationZoneRow[])objAssessment.tblVegetationZone.Select(RowFilter);
if ((VegetationZoneRows != null) && (VegetationZoneRows.Length != 0))
{
if (VegetationZoneRows.Length == 1)
{
if (VegetationZoneRows[0].VegetationZoneID > 0)
{
VegetationZoneRows[0].UpdatedBySystemUser = UserFullname;
VegetationZoneRows[0].SaveType = (int)EnumCollection.SaveType.RemoveOnly;
}
else
{
VegetationZoneRows[0].Delete();
objAssessment.AcceptChanges();
}

//tblThreatenedSpeciesSubzone

var list = objAssessment.tblThreatenedSpeciesSubzone.Rows.ToList();
for (int i = 0; i < objAssessment.tblThreatenedSpeciesSubzone.Count; i++)
{

foreach (Assessment.tblThreatenedSpeciesSubzoneRow ThreatenedSpeciesSubzoneRow in objAssessment.tblThreatenedSpeciesSubzone.Rows)
{
if (ThreatenedSpeciesSubzoneRow.VegetationZoneID == VegetationZoneIDToDelete)
DeleteThreatenedSpeciesSubzone(ref objAssessment, ThreatenedSpeciesSubzoneRow.ThreatenedSpeciesZoneID, UserFullname, ref ErrorMessage);
}
}

UpdateSpeciesGeoHabitatSurveyTime(ref objAssessment, UserFullname, ref ErrorMessage);
}
else
{
//Cannot have more than one row with same key
ErrorMessage = "Error: More than one record found - Vegetation zone ID = " + Convert.ToString(VegetationZoneIDToDelete);
return false;
}
}
else
{
//Must have at least one row with same key
ErrorMessage = "Error: Record not found - Vegetation zone ID = " + Convert.ToString(VegetationZoneIDToDelete);
return false;
}
return true;
}

我有问题“tblThreatenedSpecies Subzone”要删除,它抛出异常“发生错误。集合已修改;枚举操作可能无法执行”

var list = objAssessment.tblThreatenedSpeciesSubzone.Rows.ToList();
for (int i = 0; i < objAssessment.tblThreatenedSpeciesSubzone.Count; i++)
{

foreach (Assessment.tblThreatenedSpeciesSubzoneRow ThreatenedSpeciesSubzoneRow in objAssessment.tblThreatenedSpeciesSubzone.Rows)
{
if (ThreatenedSpeciesSubzoneRow.VegetationZoneID == VegetationZoneIDToDelete)
DeleteThreatenedSpeciesSubzone(ref objAssessment, ThreatenedSpeciesSubzoneRow.ThreatenedSpeciesZoneID, UserFullname, ref ErrorMessage);
}
}

我尝试根据你们的建议进行修改,但现在我有不同的异常(exception)情况。

希望有人指导我走上正确的道路。

最佳答案

A DataRowCollection 没有实现通用 IEnumerable<DataRow>但只有非通用的 ÌEnumerable界面。这就是为什么不能在 DataTable.Rows 上使用 LINQ 扩展方法的原因直接地。

你必须使用 DataTable.AsEnumerableDataTable.Rows.Cast<DataRow> .

List<DataRow> rowList = objAssessment.tblThreatenedSpeciesSubzone.AsEnumerable().ToList();

关于c# - System.Data.DataRowCollection' 不包含 'ToList' 的定义并且没有扩展方法 'ToList' 接受第一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com