0

私はファイル名を含む2つのArrayListを持っています.1つのリストにはより多くの名前があり、もう1つのリストには名前が少ないか、同じである可能性があります。両方のarraylistで共通ではないファイル名をリストし、それに応じてデータベースを更新したいので、確認できましたそれらが等しいかどうかですが、どのリストに余分な要素があり、どれがそれらであるかをリストすることはできません。

ここに私が現在使用しているコードがあります。

 ArrayList DatabaseSavedThumbnail = objSlideShow.GetAllThumbnailBySlideShowId();
        string[] FolderSavedThumbnail = Directory.GetFiles(Server.MapPath("~/Portals/2/SlideShowThumbnails/" + SlideShowName));

        if (Directory.GetFiles(Server.MapPath("~/Portals/2/SlideShowThumbnails/" + SlideShowName)).Length > 0)
        {
            if (!Object.Equals(DatabaseSavedThumbnail, FolderSavedThumbnail))
            {
                for (int i = 0; i < DatabaseSavedThumbnail.Count && i < FolderSavedThumbnail.Length; i++)
                {
                    if (!object.Equals(DatabaseSavedThumbnail[i], FolderSavedThumbnail[i]))
                    {
                        if (DatabaseSavedThumbnail.Count > FolderSavedThumbnail.Length)
                        {
                            objSlideShow.Thumbnail = "/Portals/2/SlideShowThumbnails/" + SlideShowName + "/" + Path.GetFileName(DatabaseSavedThumbnail[i].ToString());
                        }
                        else
                        {
                            objSlideShow.Thumbnail = "/Portals/2/SlideShowThumbnails/" + SlideShowName + "/" + Path.GetFileName(FolderSavedThumbnail[i].ToString());
                        }
                    }
                    Response.Write(objSlideShow.Thumbnail + "<br>");
                    /*objSlideShow.SlideTitle = String.Empty;
                    objSlideShow.SlideDescription = string.Empty;
                    objSlideShow.AddSlide();*/
                }
            }
        }

しかし、これは、より多くの要素を持つarraylistのすべての要素をリストします。差分要素が必要なだけなので、それらの要素のみでデータベースを更新できます。

2 つの配列リストを比較する差分レコードを取得する方法を教えてください。

4

2 に答える 2

0

これからアイデアを得ることができます

List<int> intersection = first.Cast<int>().Intersect(second.Cast<int>()).ToList();

また

ArrayList intersection = new ArrayList();
foreach (var i in first.Cast<int>().Intersect(second.Cast<int>()))
    intersection.Add(i);

詳細
2 つの ArrayList 操作

于 2013-04-29T04:15:53.220 に答える