我在C#代码中遇到了问题:
我不知道如何实现逻辑 - 遍历包含不同数据类型的Hashtable,我想要的模式如下:
if the value in variable is String type
{
do action1;
}
else
{
do action2;
}
有一个哈希表,其中包含类型为字符串和整数(组合)的数据:
public string SQLCondGenerator {
get
{
Hashtable conditions = new Hashtable();
//data having String data type
conditions.Add("miap", ViewState["miap_txt"]);
conditions.Add("pocode", ViewState["po_txt "]);
conditions.Add("materialdescription", ViewState["mat_desc_txt"]);
conditions.Add("suppliername", ViewState["supplier_txt"]);
conditions.Add("manufacturername", ViewState["manufacturer_txt"]);
//data having Int32 data type
conditions.Add("spareparts", ViewState["sp_id"]);
conditions.Add("firstfills", ViewState["ff_id"]);
conditions.Add("specialtools", ViewState["st_id"]);
conditions.Add("ps_deleted", ViewState["ps_del_id"]);
conditions.Add("po_manuallyinserted", ViewState["man_ins_id"]);
String SQLCondString = "";
String SQLCondStringConverted = "";
string s = string.Empty;
foreach (string name in conditions.Keys)
{
if (conditions[name] != null)
{
SQLCondString += name+ "=" +conditions[name]+ " and ";
Response.Write(conditions[name].GetType());
bool valtype = conditions[name].GetType().IsValueType;
if (valtype == string)
{
SQLCondString.Substring(0, SQLCondString.Length - 4);
SQLCondString += name + " and like '%" + conditions[name] + "%' and ";
}
}
}
//Response.Write("********************");
SQLCondStringConverted = SQLCondString.Substring(0, SQLCondString.Length - 4);
return SQLCondStringConverted;
}
}
也许我的编码有问题,请给予建议!
谢谢!