if语句...如果没有这个ID,请稍后再试

我有两个ID列表,两个列表都有相同数量的项目,它们具有相同的ID,它们只是不按顺序,例如:if语句...如果没有这个ID,请稍后再试

List 1 - (194, 195, 196, 197, 198, 199, 200) 

List 2 - (194, 200, 198, 195, 197, 196, 199)

我有一个声明,如果compairs这些ID:

if (cells[i].scheduleTaskID == taskid) 

这非常适用于第一个ID,因为它们匹配(194),但其他ID不匹配,有没有走,我可以说,如果taskid不匹配单元格[i] .scheduleTaskID稍后尝试任务ID?

这里是额外的代码:

int taskid = reader.GetInt32(0); (gets taskid from database) 

List<CellModel> cells

,这是CellModel:

public class CellModel 

{

public uint scheduleTaskID { get; set; }

public string task { get; set; }

public string baselineDate { get; set; }

public string scheduledDate { get; set; }

public string actualDate { get; set; }

public string finishedDate { get; set; }

public bool selected { get; set; }

public override string ToString()

{

return scheduleTaskID.ToString();

}

}

回答:

您可以使用LINQ在集合,看看你的价值匹配任何包含在集合中的价值像这样:

List<int> list1 = new List<int> { 194, 195, 196, 197, 198, 199, 200 }; //populate this from db 

List<CellModel> cells;

if(list1.Any(id => id.Equals(cells[i].scheduleTaskID)))

如果你有一个巨大的数据库中的id列表,你不想pul在整个列表中进行比较,你也可以循环阅读器。

while(reader.Read) 

{

int taskid = reader.GetInt32(0);

if (cells[i].scheduleTaskID == taskid)

{

// take action and end reading

break;

}

}

回答:

考虑到两者都是类型List<int>;如果你唯一的担心是这样的话;在列表中的数字是不是为了那么你可以通过调用列表中Sort()功能排序他们俩,然后可以循环通过它们来检查类似下面

 List<int> list1 = new List<int> { 194, 195, 196, 197, 198, 199, 200 }; 

List<int> list2 = new List<int> { 194, 200, 198, 195, 197, 196, 199 };

list2.Sort();

list1.Sort();

for (int i = 0; i < list1.Count; i++)

{

if (list1[i] == list2[i])

{

//Your Own processing logic here

}

}

内容相等虽然我有点困惑于究竟是什么你想在这里比较?

以上是 if语句...如果没有这个ID,请稍后再试 的全部内容, 来源链接: utcz.com/qa/265490.html

回到顶部