本帖最后由 nevereverlost 于 2013-12-19 15:01:34 编辑

解决方案 »

  1.   

    其实就是xml的解析,请参考我这篇博客中的一个例子。http://blog.csdn.net/chinacsharper/article/details/9246627
      

  2.   

    http://blog.csdn.net/happy09li/article/details/7431967
      

  3.   

    不是xml解析,我已经反序列化成类GetProdResponse了,现在是怎么用List的筛选方法把我要的数据筛选出来。
      

  4.   

    重申,现在是想知道怎么写List的过滤方法,不是解析xml或者其它无关的。
    用.Where .Find .FindAll 可以过滤的出来不?
    因为是要查询第二级List的数据。
    求高手啊。~
      

  5.   

    版主大哥,跟Excel没关系,别灌水哦~
      

  6.   


    //List<HotelForGetProd> HotelList;
    //List<SupplyForGetProd> SupplyList;
    for(int i = 0; i < HotelList.Count; i++)
    {
     HotelForGetProd hfgp = HotelList[i];
     if(hfgp.HotelID = "JD07330")
     {
       //do something
     }
    }
      

  7.   

    GetProdRS.SupplyList
        .Where(supply => supply.HotelList.Any(hotel => hotel.HotelID == "XXX"))
        .ToList()
      

  8.   

    是的,我刚开始也用这个Any,但是只要有一个子节点符合这个条件,他返回整个节点下的所有子字节点。
    我需要的是能把这些不符合条件的字节点都自动过滤掉,只返回满足条件的节点。
      

  9.   

    List<SupplyForGetProd> lstSupply = GetProdRS.SupplyList.Contains(t => t.SupplyID == "NZ00172").ToList();
    用Contains 这个 类似模糊查询。把所有的查询出来。
    http://www.dotblogs.com.tw/puma/archive/2008/03/16/1613.aspx
      

  10.   

    GetProdRS.SupplyList.First(t => t.SupplyID == "NZ00172")
      

  11.   


    List<SupplyForGetProd> lstSupplyTemp = GetProdRS.SupplyList;
    lstSupply = GetProdRS.SupplyList.FindAll(t =>
                                                                    {
                                                                        t.HotelList = t.HotelList.FindAll(h => h.HotelID == clsHotel.Hotel_id);
                                                                        if (t.HotelList != null && t.HotelList.Count > 0)
                                                                        {
                                                                            return true;
                                                                        }
                                                                        else
                                                                        {
                                                                            return false;
                                                                        }
                                                                    }).ToList();
    我写的这个方法可以实现。返回的数据,Supply节点下的HOTELS节点只包含符合条件的。
    但是现在有个新的问题,就是执行一遍过后,lstSupplyTemp和GetProdRS.SupplyList不符合要求的节点都被自动删除了,导致我下一次循环不能使用GetProdRS.SupplyList这个数据了。
    我查了下,原来lstSupplyTemp的复制操作并非真正的复制,其指针其实都指向同一数据,那怎么才能实现真正的复制,即改变任何一个list,另一个都不会发生改变?或者还是刚才这个问题,怎么实现过滤?返回的Supply节点下的HOTELS节点只包含符合条件的?