【问题标题】:How to convert object to string list?如何将对象转换为字符串列表?
【发布时间】:2014-08-25 12:36:29
【问题描述】:

我想通过使用 linq 选择查询来获取两个值并尝试将对象转换为字符串列表。 我正在尝试将list<object> 转换为list<string>。 代码如下。 将对象转换为字符串列表时出现错误:return returnvalue = (List)userlist;

public List<string> GetUserList(string username)
{
    List<User> UserList = new List<User>();
    List<string> returnvalue = new List<string>();
    try
    {
        string returnstring = string.Empty;
        DataTable dt = Library.Helper.FindUser(username, 200);
        foreach (DataRow dr in dt.Rows)
        {
            User user = new User();
            spuser.id = dr["ID"].ToString();
            spuser.name = dr["Name"].ToString();
            UserList.Add(user);
        }
    }
    catch (Exception ex)
    {
    }

    List<SharePointMentoinUser> userlist = UserList.Select(a => new User { name = (string)a.name, id = (string)a.id }).ToList();

    **return returnvalue = (List<string>)userlist;**
}

【问题讨论】:

  • 我认为如果您出于某种原因需要传递字符串,最好的选择是序列化结果。除此之外 - 尝试在另一端工作,以便它可以接受 User 对象列表而不是字符串,如果这也不可能,那么可能选择单个值,但它似乎不太可取。跨度>

标签: c# linq list


【解决方案1】:

选择为数组,然后使用SelectMany

return Userlist
     .Select(u => new []{ u.name.ToString(), u.id.ToString() })
     .SelectMany(u => u)
     .ToList();

这将返回一个列表,其中包含UserList 中所有用户的用户名和 ID。

【讨论】:

    【解决方案2】:
            List<User> UserList = new List<User>();
            User usr = new User();
            usr.id = "1";
            usr.name = "name1";
    
            User usr2 = new User();
            usr2.id = "2";
            usr2.name = "name2";
    
            UserList.Add(usr);
            UserList.Add(usr2);
            List<string> userlist = UserList.Select(a => a.id.ToString() +","+ a.name.ToString()).ToList();
    
            foreach (string str in userlist)
            {
                Console.WriteLine(str);
    
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多