1
我有2個列表一個存儲可過濾列的名稱(DropDown類型),另一個存儲要在這些可過濾列中加載的值。如何使用變量名來指定具有相同名稱的不同數據類型?
List<string> filterableFields = new List<string>() { "A_B", "C_D", "E_F" };
List<string> AB, CD , EF;
現在在運行時我從網絡服務的數據,我已經寫了一個函數來提取這些過濾字段值,並將其存儲到第二列表。
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」和替換「_」從它指向我的第二個列表和分配values.ToList()
到它。
我明白,c#是一種靜態語言,所以不知道我們是否可以實現這一點,但如果我可以它會使我的函數通用。
非常感謝您的時間和幫助。
維沙爾
有點相關:http://stackoverflow.com/questions/11118084/is-it-possible-to-get-local-variables-through-reflection – 2013-03-15 14:14:47