keyvaluepair_c# KeyValuePair用法「建议收藏」

2022-09-17 14:56:53 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

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

0 人点赞