2013-10-27 33 views
0

我在C#中使用列表。我有一个类是这样的:在C#列表中尝试组合逻辑#

UserManager { 
    User User; 
    Other Variables; 
} 

而且User类有一些变量,如:

User { 
    String Username, Password; 
} 

现在我所要做的是,具有UserManager秒的列表,并通过Username找到它和起作用的是这样的:

UserManager U = UM.Find(
    item => item.Username == Username 
); 

但我想聘请一个同时检查UsernamePassword COM bination。我是C#的新手,对如何实现感到困惑。试过,但没有运气:

// Attempt #1 
UserManager U = UM.Find(
    item => item.Username == Username && item => item.Password == Password 
); 

// Attempt #2 
UserManager U = UM.Find(
    item => item.Username == Username, item => item.Password == Password 
); 

// Attempt #3 
UserManager U = UM.Find(
    item => item.Username == Username, item.Password == Password 
); 

BTW,UsernamePassword来自用户通过Console.ReadLine()采取String秒。请帮我在进一步继续...

回答

2

不要重复输入的参数项

UserManager U = UM.Find(
    item => item.Username == Username && item.Password == Password 
); 
+0

屎!!!它是如此简单吗? :(:D很快会接受:P –

+0

你能解释一下这个结构吗?那个'item'和它应该怎么用? –

+1

嗯,你应该读一些关于lambda表达式的东西。 ://msdn.microsoft.com/en-us/library/orm-9780596516109-03-09.aspx – Steve

0

为什么不只是做

UserManager U = UM.Find(
item => item.Username == Username && item.Password == Password 
); 

如果做不到这一点,你可以做

UserManager U = UM.Where(
item => item.Username == Username && item.Password == Password 
); 
0

你可以尝试类似于:

if(Users.Any(user => user.UserName.Equals(UserName) && 
           user.Password.Equals(Password)) { 

    var matchedUser = Users.Where(user => user.UserName.Equals(UserName) && 
           user.Password.Equals(Password)); 

    //.... 
    }