if语句..如果不是此id,请稍后重试

本文关键字:重试 id 语句 如果不 if | 更新日期: 2023-09-27 18:28:23

我有两个ID列表,两个列表都有相同数量的项目,它们有相同的ID,只是不按顺序排列,例如:

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

我有一个if语句,它与这些id相比较:

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

这对第一个id很有效,因为它们匹配(194),但其他id不匹配,如果taskid与cells[I]不匹配,我可以说是不是。scheduleTaskID稍后尝试taskid??

以下是附加代码:

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();
        }
    }

if语句..如果不是此id,请稍后重试

您可以在集合上使用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列表,并且你不想下拉整个列表进行比较,你也可以循环读取器。

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
            }
        }

虽然我有点困惑,但你在这里到底想比较什么?