none
两个ObservableCollection<ItemData>变量如何做除去的操作? RRS feed

  • 问题

  • ObservableCollection<ItemData> OriData ObservableCollection<ItemData> delData OriData中的itemdata包含了delData我想做个操作,返回从oridata中减去deldata的数据结果,怎么做?
    • 已移动 Jie BaoModerator 2011年8月15日 10:43 (发件人:Windows Presentation Foundation)
    2011年8月13日 7:02

答案

全部回复

  • 这个问题其实就是一般的算法题,并不是那门技术特有的。我的意思就是,你要做减法,那就分别遍历你的两个集合吧,逐个元素进行比较吧,然后把相同的从oridata删除。

    或者,你看这个 http://msdn.microsoft.com/zh-cn/library/bb300779.aspx 

    举个例子:

                ObservableCollection<int> OriData = new ObservableCollection<int>() { 1, 2, 3, 4, 5, 6, 7 };
                ObservableCollection<int> delData = new ObservableCollection<int>() { 1, 3, 5, 7 };
                foreach (int value in OriData.Except<int>(delData))
                {
                    Console.WriteLine(value);
                }
                Console.ReadLine();

    输出:2,4,6

    Sincerely,


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年8月14日 18:21
    版主
  • 楼上好,那如果要算两个ObservableConllection的和呢?有什么好方法?
    2011年8月15日 10:25
  • 相类似,用这个方法 Enumerable.Concat(Of TSource) 方法: http://msdn.microsoft.com/zh-cn/library/bb302894.aspx

       ObservableCollection<int> OriData = new ObservableCollection<int>() { 1, 2, 3, 4, 5, 6, 7 };
       ObservableCollection<int> delData = new ObservableCollection<int>() { 1, 3, 5, 7 };
       foreach (int value in OriData.Concat<int>(delData))
       {
        Console.WriteLine(value);
       }
       Console.ReadLine();
    


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 a013strife 2011年8月16日 0:38
    2011年8月15日 10:43
    版主