KeyValuePair可以这样实例化

KeyValuePair mcmillan = new KeyValuePair("McMillan", 99);

取值

Console.Write(mcmillan.Key);

Console.Write(" " + mcmillan.Value);

以下是一个把对象放到数组中

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace DataStruct9

{

class Program

{

static void Main(string[] args)

{

KeyValuePair[] gradeBook = new KeyValuePair[10];

gradeBook[0] = new KeyValuePair("McMillan", 99);

gradeBook[1] = new KeyValuePair("Ruff", 64);

for (int i = 0; i <= gradeBook.GetUpperBound(0); i++)

if (gradeBook[i].Value != 0)

Console.WriteLine(gradeBook[i].Key + ": " + gradeBook[i].Value);

Console.Read();

}

}

}

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 (

&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、在业务中处理数据

///

/// 函数作用:

/// 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_C# KeyValuePairTKey,TValue的用法【转】 .相关推荐

  1. KeyValuePairTKey, TValue是DictionaryEntry的泛型版本

    如同Dictionary<TKey, TValue>是HashTable的泛型版本一样,KeyValuePair<TKey, TValue>是DictionaryEntry的泛 ...

  2. keyvaluepair_c# KeyValuePair用法

    private KeyValuePair SetKeyValuePair() { int intKey = 1; string strValue = "My value"; Key ...

  3. C#编程(五十三)----------字典DictionaryTKey,TValue

    字典 关键字:Dicitionary 说明: 必须包含命名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由两个元组组成:键和值). 键必须 ...

  4. LinQ To Object 基本用法

    LinQ To Object 基本用法 inq的基本语法:var result = from item in container select item; linq获取数据子集: var result ...

  5. C# HashSet 用法

    .NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet.这个集合类包含不重复项的无序列表.这种集合称为"集(set)". ...

  6. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  7. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  8. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  9. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

最新文章

  1. 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件
  2. 原文翻译:深度学习测试题(L1 W3 测试题)
  3. Android 中单选框或复选框点击其中一个,其余取消操作
  4. boost::mp11::mp_from_sequence相关用法的测试程序
  5. mysql打包成docker_web应用如何打包成docker镜像?
  6. c++11-template template Parameter
  7. 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
  8. 这些全国各地的特色面,你都吃过了吗?
  9. 改变 Gnome 应用程序 图标 大小
  10. L2-010 排座位 (25 分)(并查集)
  11. 串口通信USART的波特率误差计算GD32、STM32
  12. 将luarocks整合进openresty,并安装lfs
  13. SpringBoot项目:抽奖精灵
  14. Smartbi制作报表教程:热销车型分类排名总表
  15. 一键保存网页为PDF
  16. css规则中区块block,听晴空讲Drupal主题——第六章 主题中的CSS(10)
  17. 《网络攻防技术与实践》(诸葛建伟)读书笔记
  18. java try catch 输入字符串_java – 没有在try / catch中捕获NumberFormatException
  19. w7电脑蓝屏怎么解决_教您电脑蓝屏怎么办
  20. vite 不支持 ie 11?configureBuild Hook 帮你定制 bundle 打包过程

热门文章

  1. Containerd 的前世今生和保姆级入门教程
  2. 一手好牌打的稀烂,如今面临倒计时,网友哭求众筹活下去...
  3. 每日一皮:雷神索尔的锤子为什么这么重?
  4. 面试5家公司,我发现这80道面试题最好用,直中要害
  5. linux修改权限重启恢复,Linux错误执行:chmod 777 .*或chown -R * 的补救方法
  6. 进栈顺序为abcd则出栈顺序为_线性表之顺序表示
  7. Navicat连接mysql数据库
  8. error D8021 :无效的数值参数“/Wno-cpp” cython_bbox
  9. python判断图片模糊
  10. python 多进程管道 消息式通信