To check if var is String type
67,647
Solution 1
if(conditions[name] is string)
{
}
else
{
}
Solution 2
Hmm, I'm not sure why you are calling IsValueType
, but this should be sufficient:
if (conditions[name] is string)
{
///
}
Solution 3
Approach - 1
Int32 Val = 0;
if (Int32.TryParse("Your Value", out Val))
{
//Your Logic for int
}
else
{
//Your Logic for String
}
Approach - 2 (using Late Binding)
Int32 Val = 0;
dynamic conditions = new Hashtable();
conditions.Add("miap", ViewState["miap_txt"]);
conditions.Add("pocode", ViewState["po_txt "]);
foreach (string name in conditions.Keys)
{
if (Int32.TryParse(conditions[name].ToString(), out Val))
{
//Your Logic for int
}
else
{
//Your Logic for String
}
}
Author by
Bulat Makhmutov
Updated on December 24, 2020Comments
-
Bulat Makhmutov over 3 years
I have a problem in code in C#:
I don't know how to implement logic - iterating through Hashtable having values of different data types, the schema I want is below:
if the value in variable is String type { do action1; } else { do action2; }
There is a hashtable containing data of Types - String and Int (combined):
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; } }
May be I am wrong in coding, please advise!
Thanks!