可能题目标到的不清楚,我实际要达到的目的如下:有一个listView中显示着一些记录(包含一个字段ID)
现有一数组存有一些id,怎样快速方便的找出:
1.数组中有而listview中没有的id(需要添加的记录)
2.数组中没有而listview中有的id(需要删除的)
3.数组和listview中共有的(不做处理)
现有一数组存有一些id,怎样快速方便的找出:
1.数组中有而listview中没有的id(需要添加的记录)
2.数组中没有而listview中有的id(需要删除的)
3.数组和listview中共有的(不做处理)
我很菜,目前只会画瓢,惭愧。
{
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();
}