C# 将数据表内容加载到字典 publicstaticdictionary LonView() { string sql=“选择标记,表4中的Id”; 使用(SqlConnection=newsqlconnection(@“DataSource”)) { 使用(SqlCommand myCommand=newSQLCommand(sql,连接)) { Connection.Open(); 使用(SqlDataReader myReader=myCommand.ExecuteReader()) { DataTable dt=新的DataTable(); dt.负载(myReader); Connection.Close(); 字典lst=新字典(); var tableEnumerable=dt.AsEnumerable(); var tableArray=tableEnumerable.ToArray(); foreach(tableArray中的var数据) { lst.Add(数据[“id”].ToString(),数据[“Marks”]为字符串); } 返回lst; } } } }

C# 将数据表内容加载到字典 publicstaticdictionary LonView() { string sql=“选择标记,表4中的Id”; 使用(SqlConnection=newsqlconnection(@“DataSource”)) { 使用(SqlCommand myCommand=newSQLCommand(sql,连接)) { Connection.Open(); 使用(SqlDataReader myReader=myCommand.ExecuteReader()) { DataTable dt=新的DataTable(); dt.负载(myReader); Connection.Close(); 字典lst=新字典(); var tableEnumerable=dt.AsEnumerable(); var tableArray=tableEnumerable.ToArray(); foreach(tableArray中的var数据) { lst.Add(数据[“id”].ToString(),数据[“Marks”]为字符串); } 返回lst; } } } },c#,arrays,dictionary,C#,Arrays,Dictionary,我想将我的数据表列转换为Dictionary,并以数组{[“A”,30],“B”,32],“C”,45]}的形式返回Dictionary。建议一些方法来完成我的任务。看一下这个示例: public static Dictionary<string, object> LonView() { string sql = "SELECT Marks,Id FROM table4"; using (SqlConnection Co

我想将我的数据表列转换为Dictionary,并以数组{[“A”,30],“B”,32],“C”,45]}的形式返回Dictionary。建议一些方法来完成我的任务。

看一下这个示例:

public static Dictionary<string, object> LonView()
        {
            string sql = "SELECT Marks,Id FROM table4";
            using (SqlConnection Connection = new SqlConnection((@"DataSource")))
            {
                using (SqlCommand myCommand = new SqlCommand(sql, Connection))
                {
                    Connection.Open();
                    using (SqlDataReader myReader = myCommand.ExecuteReader())
                    {
                        DataTable dt = new DataTable();
                        dt.Load(myReader);
                        Connection.Close();
  Dictionary<string, object> lst = new Dictionary<string, object>();
                      var tableEnumerable = dt.AsEnumerable();
                        var tableArray = tableEnumerable.ToArray();
                foreach (var data in tableArray)
                        {
                      lst.Add(data["id"].ToString(),data["Marks"] as string);
                        }

return lst;
          }
      }
   }
}
DataTable=newdatatable();
表.Columns.Add(“Id”,typeof(string));
表.列.添加(“标记”,类型(int));
table.Rows.Add(新对象[]{“A”,50});
table.Rows.Add(新对象[]{“B”,100});
table.Rows.Add(新对象[]{“C”,200});
Dictionary dict=新字典();
foreach(table.Rows中的DataRow行)
{
dict.Add(行[0].ToString(),Convert.ToInt32(行[1].ToString());
}
var arr=dict.ToArray();
这对你有帮助吗


请确保您的查询不会返回重复的ID值(在字典中输入),因为您将得到一个异常。

看看这个示例:

public static Dictionary<string, object> LonView()
        {
            string sql = "SELECT Marks,Id FROM table4";
            using (SqlConnection Connection = new SqlConnection((@"DataSource")))
            {
                using (SqlCommand myCommand = new SqlCommand(sql, Connection))
                {
                    Connection.Open();
                    using (SqlDataReader myReader = myCommand.ExecuteReader())
                    {
                        DataTable dt = new DataTable();
                        dt.Load(myReader);
                        Connection.Close();
  Dictionary<string, object> lst = new Dictionary<string, object>();
                      var tableEnumerable = dt.AsEnumerable();
                        var tableArray = tableEnumerable.ToArray();
                foreach (var data in tableArray)
                        {
                      lst.Add(data["id"].ToString(),data["Marks"] as string);
                        }

return lst;
          }
      }
   }
}
DataTable=newdatatable();
表.Columns.Add(“Id”,typeof(string));
表.列.添加(“标记”,类型(int));
table.Rows.Add(新对象[]{“A”,50});
table.Rows.Add(新对象[]{“B”,100});
table.Rows.Add(新对象[]{“C”,200});
Dictionary dict=新字典();
foreach(table.Rows中的DataRow行)
{
dict.Add(行[0].ToString(),Convert.ToInt32(行[1].ToString());
}
var arr=dict.ToArray();
这对你有帮助吗


请确保您的查询不会返回重复的ID值(在字典中输入),因为您将得到一个异常。

您不必创建任何
数据表
,临时
字典
:一个简单的直接
while
循环就可以了

        DataTable table = new DataTable();
        table.Columns.Add("Id", typeof(string));
        table.Columns.Add("Marks", typeof(int));
        table.Rows.Add(new object[] { "A", 50 });
        table.Rows.Add(new object[] { "B", 100 });
        table.Rows.Add(new object[] { "C", 200 });

        Dictionary<string, int> dict = new Dictionary<string, int>();
        foreach (DataRow row in table.Rows)
        {
            dict.Add(row[0].ToString(), Convert.ToInt32(row[1].ToString()));
        }

        var arr = dict.ToArray();

您不必创建任何
数据表
,临时
字典
:一个简单的直接
while
循环就可以了

        DataTable table = new DataTable();
        table.Columns.Add("Id", typeof(string));
        table.Columns.Add("Marks", typeof(int));
        table.Rows.Add(new object[] { "A", 50 });
        table.Rows.Add(new object[] { "B", 100 });
        table.Rows.Add(new object[] { "C", 200 });

        Dictionary<string, int> dict = new Dictionary<string, int>();
        foreach (DataRow row in table.Rows)
        {
            dict.Add(row[0].ToString(), Convert.ToInt32(row[1].ToString()));
        }

        var arr = dict.ToArray();
试试这个例子

 using (SqlConnection Connection = new SqlConnection((@"DataSource"))) {
   using (SqlCommand myCommand = new SqlCommand(sql, Connection)) {
     Connection.Open();

     using (SqlDataReader myReader = myCommand.ExecuteReader()) {
       DataTable dt = new DataTable();
       dt.Load(myReader);

       // You can obtain the string[][] array via Linq: 
       string[][] result = dt
         .AsEnumerable()
         .Select(record => new string[] {
            Convert.ToString(record["id"]),
            Convert.ToString(record["Marks"]), })
         .ToArray();

       ...
     }
     ... 
dt.AsEnumerable()
.ToDictionary(行=>行字段(0),
row=>row.Field(1));
这将对您有所帮助。

试试这个例子

 using (SqlConnection Connection = new SqlConnection((@"DataSource"))) {
   using (SqlCommand myCommand = new SqlCommand(sql, Connection)) {
     Connection.Open();

     using (SqlDataReader myReader = myCommand.ExecuteReader()) {
       DataTable dt = new DataTable();
       dt.Load(myReader);

       // You can obtain the string[][] array via Linq: 
       string[][] result = dt
         .AsEnumerable()
         .Select(record => new string[] {
            Convert.ToString(record["id"]),
            Convert.ToString(record["Marks"]), })
         .ToArray();

       ...
     }
     ... 
dt.AsEnumerable()
.ToDictionary(行=>行字段(0),
row=>row.Field(1));
这将帮助您。

非常简单的请求:

dt.AsEnumerable()
      .ToDictionary<DataRow, string, object>(row => row.Field<string>(0),
                                row => row.Field<object>(1));
publicstaticdictionary LonView()
{
string sql=“选择标记,表4中的Id”;
字典lst=null;
使用(SqlConnection=newsqlconnection(@“DataSource”))
{
使用(SqlDataAdapter=newsqldataadapter(sql,连接))
{
DataTable dt=新的DataTable();
适配器填充(dt);
Connection.Close();
lst=dt.AsEnumerable()
.GroupBy(x=>x.Field(“标记”),y=>y.Field(“Id”))
.ToDictionary(x=>x.Key,y=>y.FirstOrDefault());
}
}
返回lst;
}

如果数据库中的值是DateTime

        public static Dictionary<string, object> LonView()
        {
            string sql = "SELECT Marks,Id FROM table4";
            Dictionary<string, object> lst = null;
            using (SqlConnection Connection = new SqlConnection((@"DataSource")))
            {
                using (SqlDataAdapter adapter = new SqlDataAdapter(sql, Connection))
                {
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);
                    Connection.Close();
                    lst = dt.AsEnumerable()
                        .GroupBy(x => x.Field<string>("Marks"), y => y.Field<object>("Id"))
                        .ToDictionary(x => x.Key, y => y.FirstOrDefault());
                }
            }
            return lst;

         }
publicstaticdictionary LonView()
{
string sql=“选择标记,表4中的Id”;
字典lst=null;
使用(SqlConnection=newsqlconnection(@“DataSource”))
{
使用(SqlDataAdapter=newsqldataadapter(sql,连接))
{
DataTable dt=新的DataTable();
适配器填充(dt);
Connection.Close();
lst=dt.AsEnumerable()
.GroupBy(x=>x.Field(“标记”),y=>y.Field(“Id”))
.ToDictionary(x=>x.Key,y=>y.FirstOrDefault());
}
}
返回lst;
}
非常简单的请求:

dt.AsEnumerable()
      .ToDictionary<DataRow, string, object>(row => row.Field<string>(0),
                                row => row.Field<object>(1));
publicstaticdictionary LonView()
{
string sql=“选择标记,表4中的Id”;
字典lst=null;
使用(SqlConnection=newsqlconnection(@“DataSource”))
{
使用(SqlDataAdapter=newsqldataadapter(sql,连接))
{
DataTable dt=新的DataTable();
适配器填充(dt);
Connection.Close();
lst=dt.AsEnumerable()
.GroupBy(x=>x.Field(“标记”),y=>y.Field(“Id”))
.ToDictionary(x=>x.Key,y=>y.FirstOrDefault());
}
}
返回lst;
}

如果数据库中的值是DateTime

        public static Dictionary<string, object> LonView()
        {
            string sql = "SELECT Marks,Id FROM table4";
            Dictionary<string, object> lst = null;
            using (SqlConnection Connection = new SqlConnection((@"DataSource")))
            {
                using (SqlDataAdapter adapter = new SqlDataAdapter(sql, Connection))
                {
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);
                    Connection.Close();
                    lst = dt.AsEnumerable()
                        .GroupBy(x => x.Field<string>("Marks"), y => y.Field<object>("Id"))
                        .ToDictionary(x => x.Key, y => y.FirstOrDefault());
                }
            }
            return lst;

         }
publicstaticdictionary LonView()
{
string sql=“选择标记,表4中的Id”;
字典lst=null;
使用(SqlConnection=newsqlconnection(@“DataSource”))
{
使用(SqlDataAdapter=newsqldataadapter(sql,连接))
{