我不知道Linq是否可行,但这里有......
我有一个对象:
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public int GroupID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我返回一个可能如下所示的列表:
List<User> userList = new List<User>();
userList.Add( new User { UserID = 1, UserName = "UserOne", GroupID = 1 } );
userList.Add( new User { UserID = 2, UserName = "UserTwo", GroupID = 1 } );
userList.Add( new User { UserID = 3, UserName = "UserThree", GroupID = 2 } );
userList.Add( …Run Code Online (Sandbox Code Playgroud) 我可以使用LINQ和只有一个查询/ LINQ语句将其拆分IEnumerable<T>为两个IEnumerable<T>吗?
我想避免迭代IEnumerable<T>两次.例如,是否可以组合下面的最后两个语句,以便只遍历一次allValues?
IEnumerable<MyObj> allValues = ...
List<MyObj> trues = allValues.Where( val => val.SomeProp ).ToList();
List<MyObj> falses = allValues.Where( val => !val.SomeProp ).ToList();
Run Code Online (Sandbox Code Playgroud)