C# 比较两个listview,并将不匹配的项放在Windows窗体C的第三个listview中#

C# 比较两个listview,并将不匹配的项放在Windows窗体C的第三个listview中#,c#,winforms,listview,C#,Winforms,Listview,我有两个windows窗体的列表视图,其中包含数据。有些记录是常见的,而有些则不是。我需要那些不匹配的记录。如何仅获取不匹配的记录。尝试使用Linq Except方法获取不匹配项的列表。尝试使用Linq Except方法获取不匹配项的列表。尝试以下操作: using Sustem.Linq; // Add this line. //If it doesn't work add a reference to System.Core.dll na

我有两个windows窗体的列表视图,其中包含数据。有些记录是常见的,而有些则不是。我需要那些不匹配的记录。如何仅获取不匹配的记录。

尝试使用Linq Except方法获取不匹配项的列表。

尝试使用Linq Except方法获取不匹配项的列表。

尝试以下操作:

 using Sustem.Linq; // Add this line. 
                    //If it doesn't work add a reference to System.Core.dll

    namespace FormAppp
    {
        public class Form1 : Form
        {
            public Form1()
            {
            }

            ....

            void DoInitialization()
            {
                listView1.Items.Add(new ListViewItem("1"));
                listView1.Items.Add(new ListViewItem("2"));
                listView1.Items.Add(new ListViewItem("3"));


                listView2.Items.Add(new ListViewItem("1"));
                listView2.Items.Add(new ListViewItem("3"));

                var list1Source = listView1.Items.Cast<ListViewItem>();
                var list2Source = listView2.Items.Cast<ListViewItem>();

                var list3Source = list1Source.Where(x => 
                 list2Source.All(y => y.Text != x.Text));
            } 
        }
    }
使用Sustem.Linq;//添加这一行。
//如果无效,请添加对System.Core.dll的引用
名称空间格式
{
公开课表格1:表格
{
公共表格1()
{
}
....
void DoInitialization()
{
listView1.Items.Add(新ListViewItem(“1”));
listView1.Items.Add(新ListViewItem(“2”));
listView1.Items.Add(新ListViewItem(“3”));
listView2.Items.Add(新ListViewItem(“1”));
listView2.Items.Add(新ListViewItem(“3”));
var list1Source=listView1.Items.Cast();
var list2Source=listView2.Items.Cast();
var list3Source=list1Source.Where(x=>
list2Source.All(y=>y.Text!=x.Text));
} 
}
}
试试这个:

 using Sustem.Linq; // Add this line. 
                    //If it doesn't work add a reference to System.Core.dll

    namespace FormAppp
    {
        public class Form1 : Form
        {
            public Form1()
            {
            }

            ....

            void DoInitialization()
            {
                listView1.Items.Add(new ListViewItem("1"));
                listView1.Items.Add(new ListViewItem("2"));
                listView1.Items.Add(new ListViewItem("3"));


                listView2.Items.Add(new ListViewItem("1"));
                listView2.Items.Add(new ListViewItem("3"));

                var list1Source = listView1.Items.Cast<ListViewItem>();
                var list2Source = listView2.Items.Cast<ListViewItem>();

                var list3Source = list1Source.Where(x => 
                 list2Source.All(y => y.Text != x.Text));
            } 
        }
    }
使用Sustem.Linq;//添加这一行。
//如果无效,请添加对System.Core.dll的引用
名称空间格式
{
公开课表格1:表格
{
公共表格1()
{
}
....
void DoInitialization()
{
listView1.Items.Add(新ListViewItem(“1”));
listView1.Items.Add(新ListViewItem(“2”));
listView1.Items.Add(新ListViewItem(“3”));
listView2.Items.Add(新ListViewItem(“1”));
listView2.Items.Add(新ListViewItem(“3”));
var list1Source=listView1.Items.Cast();
var list2Source=listView2.Items.Cast();
var list3Source=list1Source.Where(x=>
list2Source.All(y=>y.Text!=x.Text));
} 
}
}

本帖已回答了可能重复的问题:本帖已回答了可能重复的问题:本帖已回答了可能重复的问题:只需添加此问题:使用System.Linq;我刚刚更新了我的答案。看看评论。我希望它能帮助你。至于你关于Where(x=>list2Source.All(…)的问题。我不能简单回答。我可以让你阅读以下文章:。只需添加以下内容:使用System.Linq;我刚刚更新了我的答案。看看评论。我希望它能帮助你。至于你关于Where(x=>list2Source.All(…)的问题。我不能简单回答。我可以让您阅读以下文章:。只需添加以下内容:使用System.Linq;我刚刚更新了我的答案。请查看评论。我希望它能帮助您。至于您关于Where(x=>list2Source.All(…)的问题。我不能简单回答。我可以让您阅读以下文章:。使用Sergei的代码初始化这两个视图,然后类似的操作会给您带来需要添加到第三个ListView变量lv1Contents=listView1.Items.Cast().Select(xx=>xx.Content);var lv1Contents=listView2.Items.Cast().Select()中的差异(xx=>xx.Content);var diff=lv1Contents.Except(lv2Contents);使用Sergei的代码初始化这两个视图,然后类似的东西会给您带来差异,需要添加到第三个ListView var lv1Contents=listView1.Items.Cast().Select(xx=>xx.Content);var lv1Contents=listView2.Items.Cast().Select()中(xx=>xx.Content);var diff=lv1Contents.Except(lv2Contents);使用Sergei的代码初始化这两个视图,然后类似的东西会给您带来差异,需要添加到第三个ListView var lv1Contents=listView1.Items.Cast().Select(xx=>xx.Content);var lv1Contents=listView2.Items.Cast().Select()中(xx=>xx.Content);var diff=lv1内容。除了(lv2内容);