私は2つのリストを持っています.1つはフィルタリング可能な列(DropDown型)の名前を保存し、もう1つはそれらのフィルタリング可能な列にロードする値を保存します.
List<string> filterableFields = new List<string>() { "A_B", "C_D", "E_F" };
List<string> AB, CD , EF;
実行時に Web サービスからデータを取得し、これらのフィルター可能なフィールドの値を抽出して 2 番目のリストに値を保存する関数を作成しました。
private void prepareListForFilterableColumns(XDocument records)
{
foreach (var currentField in filterableFields)
{
var values = (from xml in records.Descendants(z + "row")
let val = (string)xml.Attribute("ows_" + currentField.Replace("_", "_x0020_"))
where val != ""
orderby val
select val
).Distinct();
switch (currentField)
{
case "A_B": AB = values.ToList(); break;
case "C_D": CD = values.ToList(); break;
}
}
}
今私は、割り当てをswtich case
ブロックでハードコーディングする代わりに、最初のリスト名「A_B」を使用し、それから「_」を置き換えて2番目のリストを指し、それに割り当てることができればと考えvalues.ToList()
ていました。
c# は静的言語であることを理解しています。これを達成できるかどうかはわかりませんが、できれば関数をジェネリックにすることができます。
時間と助けを前もってありがとう。
ヴィシャール