列出哪里和哪些不同的结果C#

时间:2016-02-15 17:35:55

标签: c# list where

我得到了一份包含3495个结果的列表。我得到的代码在IF条件下有一个循环。循环花费的时间太长(大约8分钟,因为在de if语句中进行了另一个操作)。我想要做的是将两个结果与主要列表分开。但我得到了不同的listtems列表。

List <MyObjectType> myListOfObjects = GetAllMyStuff();
List <MyObjectType> myTrueListObjects = new List<MyObjectType>();
List <MyObjectType> myElseListObjects = new List<MyObjectType>();
int ifResults = 0;
int elseResults = 0;

myListOfObjects.ForEach( s => 
{
 if (s.SubSolicitud != null && s.SubSolicitud.Count() > 0)
     myTrueListObjects .Add(s);
 else
     myElseListObjects.Add(s);    
});

return;

假设我在myTrueListObjects中有3000个对象,在myElseListObjects中有935个对象。 但是当我尝试使用expresión的地方时,我得到了不同的结果

    List <MyObjectType> myIfListObjects = GetAllMyStuff();
    List <MyObjectType> myTrueListObjects = new List<MyObjectType>();
    List <MyObjectType> myElseListObjects = new List<MyObjectType>();

    myTrueListObjects =  myIfListObjects.Where( s = s.SubSolicitud != null   
                                                 && s.SubSolicitud.Count() > 0)
    myElseListObjects  = myIfListObjects.Where( s = !(s.SubSolicitud != null   
                                                   && s.SubSolicitud.Count() > 0))   
    return;

通过这些,我在两个列表中获得了3935(myIfListObjects和myElseListObjects)。我不知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

这里的代码应该与第一段代码相同。我试过一个简单的列表,它的工作原理。你的sintaxis是错的,我无法建立它。

List <MyObjectType> myIfListObjects = GetAllMyStuff();
List <MyObjectType> myTrueListObjects = new List<MyObjectType>();
List <MyObjectType> myElseListObjects = new List<MyObjectType>();

myTrueListObjects =  myIfListObjects.Where( s => (s.SubSolicitud != null   
                                             && s.SubSolicitud.Count() > 0)).ToList();

myElseListObjects  = myIfListObjects.Where( s => (!(s.SubSolicitud != null   
                                               && s.SubSolicitud.Count() > 0))).ToList();

return;