c#中的list 数据去重,并在wpf中listbox控件文本对齐

开发的股票程序遇到两个问题:

  1. 股票数据重复。
  2. listbox控件文件不能对齐。
    在这里插入图片描述
    网上查询了一些资料,对listbox对齐的方法还是没搞明白。
    不过今天无意中进行数据去重的时候,listbox对齐了,原理没搞懂。。先记录下来。
    可能是在准备数据阶段填充了空格,又重写了tostring()方法,然后listbox会自动对齐??
 List<IndusIndex> temp = new List<IndusIndex>();
            //分割,准备数据去重
            foreach (var item in result)
            {
                var a = item.Split('\t');
                //文本对齐,和IndusIndex中的stringformat配合,缺一不可
                var s= string.Join("  ,", a).Split(',');
                temp.Add( new IndusIndex(s[0],s[1],s[2]));
              
               
            }
            //利用自定义规则去重
             listBoxstock.ItemsSource = temp.Distinct(new Compare());
            //listBoxstock.ItemsSource = temp;
        }
    }

    //为了数据去重,定义一个最后挑出的股票列表类
    class IndusIndex
    {
        public string ID { get; set; }
        public string NAME { get; set; }
        public string INDUS { get; set; }

        public IndusIndex(string id, string name, string indus)
        {
            ID = id;
            NAME = name;
            INDUS = indus;
        }
        //必须重写tostring,否则无法识别
        public override string ToString()
        {
            return string.Format("{0}\t{1}\t{2}", this.ID, this.NAME, this.INDUS);
        }
    }
    //引用类型的数据去重,定义规则
    class Compare : IEqualityComparer<IndusIndex>
    {
        public bool Equals(IndusIndex x, IndusIndex y)
        {
            return x.NAME == y.NAME;//可以自定义去重规则,此处将NAME相同的就作为重复记录,不管其他
        }
        public int GetHashCode(IndusIndex obj)
        {
            return obj.NAME.GetHashCode();//哈希码相同视为相同
        }
    }

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dark_tone

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值