-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 SqlQuery

エラー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

name を String() に変換してから、文字列のリストを作成するときに

groupsByUserType.Add(item.Name);

お役に立てれば。

于 2013-02-13T17:01:35.653 に答える