keyvaluepair_KeyValuePair用法(转)
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;
}
keyvaluepair_KeyValuePair用法(转)相关推荐
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
- Dorado用法与示例
Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...
- TensorFlow用法
TensorFlow用法 什么是TensorFlow TensorFlow是一个开源软件库,用于使用数据流图进行数值计算.图中的节点表示数学运算,而图的边缘表示流动的多维数据数组(张量).这种灵活的体 ...
最新文章
- 设计模式之外观模式php,php设计模式(十五)外观模式
- windows的阻塞和非阻塞Socket编程
- JS-String方法
- 求解迷宫问题的所有路径及最短路径程序
- 【David Silver强化学习公开课】-8:Integrating Learning and Planning
- LevelDB源码解读
- python全栈学习--day12(函数高级应用-带参数的装饰器,多个装饰器装饰一个函数)...
- mysql8.0云时代_8.0.22Mysql的详细安装
- python语言易错知识点强化
- 95-190-452-源码-window-Trigger-ContinuousEventTimeTrigger
- 打开程序并监听程序是否退出
- 第 1 章 MySQL 的架构介绍
- python学来干什么-学 Python 都用来干嘛的?
- python编程入门-最好的Python入门教材是哪本?
- 黑马程序员——String类总结
- 机器学习之------信号处理(入门原理)
- 麻省理工学院公开课:计算机科学及编程导论习题3下
- Win10镜像安装net3.5
- 计算机开机按f1,图文讲解开机按f1的解决方法,简单明了!
- 怎样把ppt转换成html,如何将PPT文档转换成Flash/HTML的方法
热门文章
- Go开发报错 -- Golang strings.Builder type undefined
- ZooKeeper之Web管理工具Shepher介绍
- LSA类型讲解——LSA-5(第5类LSA——Autonomous System External LSA)、LSA-4(第四类LSA——ASBR Summary LSA)讲解
- GNS3模拟器中关于创建vtp时,内存空间不足问题的解决
- HTML 中多媒体设置:1、滚动字幕及滚动图片的设置 2、音乐视频的插入
- Linux下压缩工具gzip和归档工具tar及其实战shell应用
- Mac终端设置,zsh和bash环境变量配置
- Windows/Linux服务器上Tomcat开启远程调试,使用IDEA本地调试
- Springboot启动报错:DEBUG org.springframework.boot.diagnostics.FailureAnalyzers
- 【安卓开发】Webview简单使用