大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
C# KeyValuePair的用法。结构体,定义可设置或检索的键/值对。也就是说我们可以通过 它记录一个键/值对这样的值。比如我们想定义一个ID(int类型)和Name(string类型)这样的键/值对,那么可以这 样使用。
///
/// 设置键/值对
///
///
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,示例:
1、从数据库中读取数据
///
/// 获取所有企业的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 ( 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、在业务中处理数据
///
/// 函数作用:
/// 1、返回从待导入的企业名称中获的有效企业Id集。
/// 2、返回有效的企业行号集。
/// 3、返回无效的企业行号集。
///
/// 待导入的企业名称(英文)集
/// 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;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158806.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...