0
Dictionary<string, DataRow> dtUsers;
using (DataSet dsmyTable = DbConnection.db_Select_Query
                     ("use myDb select * from myTable"))
{
    dtUsers= dsmyTable .Tables[0].AsEnumerable().
         ToDictionary(row => row.Field<string>("UserId"));
}

わかりました UserId はsmallint列ですが、文字列としてキャストしたいです。

上記の linq をどのように変更すればよいですか?

4

2 に答える 2

6

an を文字列にキャストすることはできませんintが、int の文字列表現を取得できます。

dtUsers= dsmyTable .Tables[0].AsEnumerable().
         ToDictionary(row => row.Field<short>("UserId").ToString());

ただし、これは表示目的でのみ行う必要があります。一般に、どこでも文字列から int を解析するよりも int を処理する方がはるかに簡単であるため、できる限り int を保持する必要があります。

于 2012-12-23T19:04:12.847 に答える
1

ToString()メソッドを使用するだけです。もちろん、これはsmallintコラムのプレゼンテーション用です。

dtUsers= dsmyTable .Tables[0].AsEnumerable().
         ToDictionary(row => row.Field<short>("UserId").ToString());
于 2012-12-23T19:06:34.163 に答える