-2

我正在尝试按用户类型对所有用户进行分组,将它们添加到列表中:
代码:

   public string[] GroupByUserType()
    {
        using (DataBase db = new DataBase ())
        {
            var query = from e in db.Users
                        group db.Users by e.UserType;

            string[] groups;

            List<string> groupsByUserType = new List<string>();

            foreach (var name in query)
            {
                foreach (var item in name)
                {
                    groupsByUserType.Add(item);<--- error here
                }
            }
            groups = groupsByUserType.ToArray();

            return groups;
        }

    }

我得到:

错误 1 ​​'System.Collections.Generic.List.Add(string)' 的最佳重载方法匹配有一些无效参数 C:\Users\Dev4\Documents\Visual Studio 2008\Projects\Linq\SqlQuery\QueryOnName.cs 27 25查询

错误 2 参数“1”:无法从“System.Data.Linq.Table”转换为“字符串”C:\Users\Dev4\Documents\Visual Studio 2008\Projects\Linq\SqlQuery\QueryOnName.cs 27 46 SqlQuery

4

2 回答 2

1

问题是您的 linq 查询返回列表System.Data.Linq.Table,尝试访问 name 属性,如下所示:

public string[] GroupByUserType()
{
    using (DataBase db = new DataBase ())
    {
        var query = from e in db.Users
                    group db.Users by e.UserType;

        string[] groups;

        List<string> groupsByUserType = new List<string>();

        foreach (var name in query)
        {
            foreach (var item in name["name"])
            {
                groupsByUserType.Add(item);<--- error here
            }
        }
        groups = groupsByUserType.ToArray();

        return groups;
    }
}
于 2013-02-13T17:03:58.367 回答
0

将名称转换为字符串(),然后在制作字符串列表时

groupsByUserType.Add(item.Name);

希望这可以帮助。

于 2013-02-13T17:01:35.653 回答