0

ID、名前、値の3つの列を持つデータテーブルがあります。

このデータテーブルを に変換したいList<long,List<keyvaluepair<string,string>>>

唯一のトリックは、ID が別のテーブルからの外部 ket であることです。そのため、反復値を持つ可能性があります。

C#でやりたい。

前もって感謝します。


いいえ、辞書的にではありません.....実際には、次のように定義された2つのクラスがあります....

public class RunParameters
    {
        public long RunId { get; set; }
        public List<WorkflowParameter<string>> WorkflowParameters { get; set; }

        public RunParameters()
        {
            WorkflowParameters = new List<WorkflowParameter<string>>();
        }
    }

 public struct WorkflowParameter<T>
    {
        public string ParameterName
        { get; set; }
        public T ParameterValue
        { get; set; }
    }

データブルをリストに変換したい。

このリストをシリアル化してネットワーク経由で送信したいので、辞書を使用できません....

4

1 に答える 1

2

クエリ内のIDアイテムをグループ化し、各アイテムを group から に射影しKeyValuePairます。

(from r in table.AsEnumerable()
 group r by r.Field<long>("ID") into g
 select g.Select(i => new KeyValuePair<string, string>(
                      i.Field<string>("Name"), i.Field<string>("Value"))
         .ToList()).ToList()

または完全にメソッド構文で:

 table.AsEnumerable()
      .GroupBy(r => r.Field<long>("ID"))
      .Select(g => g.Select(r => new KeyValuePair<string, string>(
                          r.Field<string>("Name"), r.Field<string>("Value"))
                    .ToList())
      .ToList() 
于 2013-05-13T07:01:55.390 に答える