可能题目标到的不清楚,我实际要达到的目的如下:有一个listView中显示着一些记录(包含一个字段ID)
现有一数组存有一些id,怎样快速方便的找出:
1.数组中有而listview中没有的id(需要添加的记录)
2.数组中没有而listview中有的id(需要删除的)
3.数组和listview中共有的(不做处理)

解决方案 »

  1. 比较慢的就是遍历数组了;当然也可以用一个hashtable来保存数据和treeview的对应关系,这样就不用每次都遍历,更有得于效率吧
      

  2. 如果采用遍历数组的方法,能否给的例子,怎么把A有B没有的放在一个数组里,B有A没有的放在另一个数组
    我很菜,目前只会画瓢,惭愧。
      

  3. public static void Main()
        {
            string[] a1 = new string[] { "1", "2", "3" };
            string[] a2 = new string[] { "1", "5", "3" };        object[] only1, only2;
            CompareArrays(a1, a2, out only1, out only2);
        }    public static void CompareArrays(string[] array1, string[] array2, out object[] only1, out object[] only2)
        {
            ArrayList arrayList1 = new ArrayList();
            arrayList1.AddRange(array1);
            arrayList1.Sort();        ArrayList arrayList2 = new ArrayList();
            arrayList2.AddRange(array2);
            arrayList2.Sort();        ArrayList onlyList1 = new ArrayList();
            ArrayList onlyList2 = new ArrayList();
            int i = 0, j = 0;
            while(i < arrayList1.Count && j < arrayList2.Count)
                if (!arrayList1[i].Equals(arrayList2[j]))
                {
                    if (arrayList1[i].ToString().CompareTo(arrayList2[j].ToString()) < 0)
                    {
                        onlyList1.Add(arrayList1[i]);
                        i++;
                    }
                    else
                    {
                        onlyList2.Add(arrayList2[j]);
                        j++;
                    }
                }
                else
                {
                    i++;
                    j++;
                }        while (i < arrayList1.Count)
                onlyList1.Add(arrayList1[i++]);
            while (j < arrayList2.Count)
                onlyList2.Add(arrayList2[j++]);        only1 = onlyList1.ToArray();
            only2 = onlyList2.ToArray();
            
        }
      

类似问题 »