0

次のメソッドでは、パラメーターとして渡された ID が csv のように複数の値 (例: 1,2) であり、呼び出し元の関数に IEnumerable として返される ID 値を渡すことによって、ユーザー名を取得しようとしています。

コードは次のとおりです。

[NonAction]
public static IEnumerable<UserProfile> SearchCMSAdmins(string s)
{
    //var searchResults = Entities.UserProfiles.Where(item =>item.UserName.Contains(s));
    //return searchResults;

    string[] ids = s.Split(',');

    IEnumerable<UserProfile> results = null;
    IList<UserProfile> user = new List<UserProfile>();

    for (int i = 0; i < ids.Length; i++)
    {
        int id = Convert.ToInt32(ids[i].ToString());
        var entity = Entities.UserProfiles.Where(item => item.UserId);
        //user.Add(entity);
        results = results.Concat(entity);
    }

    return results;
}

どんな助けでも大歓迎です。

4

3 に答える 3

0

使ってみてくださいContains:

var results = Entities.UserProfiles.Where(item => ids.Contains(item.UserId));

http://msdn.microsoft.com/en-us/library/ms132407.aspx

于 2013-05-14T07:32:01.533 に答える
0
[NonAction]
public static IEnumerable<UserProfile> SearchCMSAdmins(string s)
{
    string[] ids = s.Split(',');

    foreach (string idAsString in ids)
    {
        int id = Convert.ToInt32(idAsString);
        var entity = Entities.UserProfiles.Where(item => item.UserId == id);
        yield return entity;
    }
}

それを行う必要があります(IDがintでない場合、またはエンティティがnullの場合に備えて、いくつかの検証コードも必要です)

于 2013-05-14T07:51:50.817 に答える