C#新手 如何得到列表A有列表B无的元素列表

偏爱风流 2016-09-29 08:31:14

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System;

namespace CompareUtility
{

struct Item
{
int id;
int size;
}

public class Compare
{
List<Item> lstA = new List<Item>();
List<Item> lstB = new List<Item>();

public void Init()
{
//好像下面不能这样增加元素
lstA.Add(new Item() { 1, 10 });
lstA.Add(new Item() { 2,10});
lstA.Add(new Item() { 3, 10 });
lstA.Add(new Item() { 4, 10 });
lstB.Add(new Item() { 1, 10 });
lstB.Add(new Item() { 2, 10 });
lstB.Add(new Item() { 3, 10 });
lstB.Add(new Item() { 5, 10 });
}
//比较新增 即B有 A无
public List<Item> CompareAdd()
{
//var lst = lstB.Except(lstA);
//return lst;
//求方法
}

//比较相同 即A和B都有的
public List<Item> CompareSome()
{
//求 方法
}
}
}
...全文
180 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
偏爱风流 2016-09-29
  • 打赏
  • 举报
回复
引用 2 楼 guwei4037 的回复:
namespace CompareUtility
{
    class Program
    {
        static void Main(string[] args)
        {
            Compare c = new Compare();
            List<Item> list1 = c.CompareAdd();
            foreach (Item item in list1)
            {
                Console.WriteLine("{0},{1}", item.id, item.size);
            }

            List<Item> list2 = c.CompareSome();
            foreach (Item item in list2)
            {
                Console.WriteLine("{0},{1}", item.id, item.size);
            }
        }
    }

    public struct Item
    {
        public int id;
        public int size;
    }

    public class Compare
    {
        List<Item> lstA = new List<Item>();
        List<Item> lstB = new List<Item>();

        public Compare()
        {
            lstA.Add(new Item() { id = 1, size = 10 });
            lstA.Add(new Item() { id = 2, size = 10 });
            lstA.Add(new Item() { id = 3, size = 10 });
            lstA.Add(new Item() { id = 4, size = 10 });
            lstB.Add(new Item() { id = 1, size = 10 });
            lstB.Add(new Item() { id = 2, size = 10 });
            lstB.Add(new Item() { id = 3, size = 10 });
            lstB.Add(new Item() { id = 5, size = 10 });
        }

        /// <summary>
        /// 比较新增 即B有 A无
        /// </summary>
        public List<Item> CompareAdd()
        {
            return lstB.Except(lstA).ToList<Item>();
        }

        /// <summary>
        /// 比较相同 即A和B都有的
        /// </summary>
        public List<Item> CompareSome()
        {
            return lstB.Except(lstB.Except(lstA)).ToList<Item>();
        }
    }
}
非常感谢,刚刚自己也把CompareAdd弄出来了,不过CompareSome还是不会,用惯了C++ struct的访问权限忘记了。
全栈极简 2016-09-29
  • 打赏
  • 举报
回复
namespace CompareUtility
{
    class Program
    {
        static void Main(string[] args)
        {
            Compare c = new Compare();
            List<Item> list1 = c.CompareAdd();
            foreach (Item item in list1)
            {
                Console.WriteLine("{0},{1}", item.id, item.size);
            }

            List<Item> list2 = c.CompareSome();
            foreach (Item item in list2)
            {
                Console.WriteLine("{0},{1}", item.id, item.size);
            }
        }
    }

    public struct Item
    {
        public int id;
        public int size;
    }

    public class Compare
    {
        List<Item> lstA = new List<Item>();
        List<Item> lstB = new List<Item>();

        public Compare()
        {
            lstA.Add(new Item() { id = 1, size = 10 });
            lstA.Add(new Item() { id = 2, size = 10 });
            lstA.Add(new Item() { id = 3, size = 10 });
            lstA.Add(new Item() { id = 4, size = 10 });
            lstB.Add(new Item() { id = 1, size = 10 });
            lstB.Add(new Item() { id = 2, size = 10 });
            lstB.Add(new Item() { id = 3, size = 10 });
            lstB.Add(new Item() { id = 5, size = 10 });
        }

        /// <summary>
        /// 比较新增 即B有 A无
        /// </summary>
        public List<Item> CompareAdd()
        {
            return lstB.Except(lstA).ToList<Item>();
        }

        /// <summary>
        /// 比较相同 即A和B都有的
        /// </summary>
        public List<Item> CompareSome()
        {
            return lstB.Except(lstB.Except(lstA)).ToList<Item>();
        }
    }
}
偏爱风流 2016-09-29
  • 打赏
  • 举报
回复
各位大神,看过来啊

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧