keyvaluepair_【转】KeyValuePair用法「建议收藏」

keyvaluepair_【转】KeyValuePair用法「建议收藏」KeyValuePair用法(转)C#KeyValuePair的用法。结构体,定义可设置或检索的键/值对。也就是说我们可以通过它记录一个键/值对这样的值。比如我们想定义一个ID(int类型)和Name(string类型)这样的键/值对,那么可以这样使用。//////设置键/值对//////privateKeyValuePairSetKeyValuePair(){intintKey…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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 (

&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;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158812.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月26日 下午6:46
下一篇 2022年7月26日 下午7:00


相关推荐

  • 收藏!Java后端转AI Agent全攻略|小白/程序员入门大模型必看

    收藏!Java后端转AI Agent全攻略|小白/程序员入门大模型必看

    2026年3月14日
    2
  • pycharm配置svn有什么用_SVN安装配置

    pycharm配置svn有什么用_SVN安装配置PyCharm是一款非常优秀的PythonIDE,以前用Editplus,用惯了感觉还行。用了PyCharm后被它丰富的功能吸引了。无论是普通python脚本、Django框架项目、还是GoogleAppEngine项目,它都能完美运行。不过设置起来比较麻烦,比如Subversion的用法我就一直没参透,我总是写完代码后出去用小乌龟提交。今天google一下,终于搞定了。现在写完代码后直接在…

    2022年8月26日
    7
  • pycharm远程调试python_pycharm怎么建立新项目

    pycharm远程调试python_pycharm怎么建立新项目一般代码本地调试完成后,需要运行到服务器上,比如自动化测试脚本、爬虫脚本等,所以第一步需要将项目上传到服务器,然后在服务器上进行调试和运行。但是需要长期维护和开发的项目,这样就繁琐了很多,并且我们时常要维护多个测试或者开发环境,每个环境的Python版本和依赖包有可能还存在差异,这样的话,每次更新需要花费的时间就更多了。其实,很多的编辑器都考虑到这个问题,可以实现远程调试,比如Pycharm、Vs…

    2022年8月26日
    9
  • 【罗盘时钟—使用html,js,css编写。附源代码及效果】

    【罗盘时钟—使用html,js,css编写。附源代码及效果】代码罗盘效果.html<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><metahttp-equiv=”X-UA-Compatible”content=”ie=edge”><title>js罗盘时钟

    2022年6月28日
    35
  • 浙江python培训

    浙江python培训浙江八年级新增Python编程课程,孩子能学得懂Python吗?前几天,浙江省的一则教育消息火了。据悉,从9月份开始的新学期,浙江省三到九年级信息技术课将同步替换新教材,其中,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python。八年级就要学Python,网友们展开了激烈的讨论。可以看出,编程教育在中小学阶段已经渐渐普及。对于中学开展Python课程,很多网友呈赞同态度。除了浙江,北京和山东也确定要把Python编程基础纳入信息技…

    2022年5月13日
    40
  • RxJS之组合操作符 ( Angular环境 )

    RxJS之组合操作符 ( Angular环境 )

    2022年4月2日
    71

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号