大家好,又见面了,我是你们的朋友全栈君。
private KeyValuePair SetKeyValuePair()
{
int intKey = 1;
string strValue = “My value”;
KeyValuePair kvp = new KeyValuePair(intKey, strValue);
return kvp;
}
///
/// 获得键/值对
///
private void GetKeyValuePairDemo()
{
KeyValuePair kvp = SetKeyValuePair();
int intKey = kvp.Key;
string strValue = kvp.Value;
}
如果想使用泛型的话,一般批量读取数据的时候,当只需要读两个字段(Id and Name)时, 如果想不用Model类,并配合泛型使用KeyValuePair,示例:
///绑定一个cmbobox数据项
public void cmbDate{
List> dit = new List>();
if (Helper.GlobalVariables.Gi_Language_Type == 1)
{
dit.Add(new KeyValuePair(1, “身份证”));
dit.Add(new KeyValuePair(2, “军官证”));
dit.Add(new KeyValuePair(3, “护照”));
dit.Add(new KeyValuePair(4, “其他”));
}
else
{
dit.Add(new KeyValuePair(1, “Identity card”));
dit.Add(new KeyValuePair(2, “Officer certificate”));
dit.Add(new KeyValuePair(3, “Passport”));
dit.Add(new KeyValuePair(4, “Other”));
}
this.cmbCertificate_type.DataSource = dit;
this.cmbCertificate_type.DisplayMember = “Value”;
this.cmbCertificate_type.ValueMember = “Key”;
}
///
/// 获取所有企业的Id(enterprise_id)及英文名 (enterprise_name_eng)
///
/// enterprise_info表中的所有企业 Id及英文名
public List> GetEnterpriseIdAndNameEngList()
{
//enterprise_id键和enterprise_name_eng 对
List> lstIdKeyNameEngValue = new List>();
string cmdText = “select enterprise_id, enterprise_name_eng from enterprise_info”;
using (OracleDataReader reader = OracleHelper.ExecuteReader(OracleHelper.OracleConnString, CommandType.Text, cmdText, null))
{
try
{
MyEventLog.Log.Debug (“cmdText= ” cmdText);
while (reader.Read())
{
KeyValuePair idKeyNameEngValue = new KeyValuePair (
&nbs p; reader.IsDBNull(0) ? 0 : reader.GetInt64(0),
; reader.IsDBNull(1) ? string.Empty : reader.GetString(1)
; );
lstIdKeyNameEngValue.Add (idKeyNameEngValue);
}
OracleHelper.DataReaderClose(reader);
}
catch (OracleException e)
{
MyEventLog.Log.Error (“cmdText= ” cmdText);
MyEventLog.Log.Error(e);
throw e;
}
}
return lstIdKeyNameEngValue;
}
2、在业务中处理数据
/// 待导入的企业名称(英文)集
/// Excel表中有效的企业Id行集
/// Excel表中无效的企业Id行集
/// 返回有效的行的索引列表
public List PrepareForImport(List lstEnterpriseNameEn, out List lstValidRowsIndex, out List lstInvalidRowsIndex)
{
//有效的企业Id行
lstValidRowsIndex = new List();
//无效的企业Id行
lstInvalidRowsIndex = new List(); //获取所有的企业Id及英文名
List> lstIdKeyNameEngValue = dal.GetEnterpriseIdAndNameEngList(); //用于存放有效的企业的Id,即如果可以在enterprise_info表中找到此企业的英文名,那么表示此企业存在,因此把存在的企业Id获取出来,存放于此变量
List lstValidEnterpriseId = new List(); //通过以下循环可以获得可以有效的企业Id列表
for (int i = 0; i < lstEnterpriseNameEn.Count; i )
{
foreach (KeyValuePair kvp in lstIdKeyNameEngValue)
{
if (lstEnterpriseNameEn[i] == kvp.Value)
{
//获得有效行索引
lstValidRowsIndex.Add(i); //获得有效的企业Id
lstValidEnterpriseId.Add(kvp.Key); //找到了有效的ID后马上跳出内循环,回到外循环
continue;
}
} if (!lstValidRowsIndex.Contains(i) && !lstInvalidRowsIndex.Contains(i))
{
//取得无效行索引
lstInvalidRowsIndex.Add(i);
}
}
return lstValidEnterpriseId;
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158791.html原文链接:https://javaforall.cn