网站建设

C# DataTable数据遍历优化详解

我们在进行开发时,会经常使用DataTable来存储和操作数据,我发现在遍历DataTable并对数据进行删除和添加操作时速度非常慢,查阅相关资料并测试在添加主键后可以使遍历和操作速度提...

C# 遍历datatable字段名和value的案例

遍历datatable的方法: DataTable dt = dataSet.Tables[0]; foreach (DataColumn col in dt .Columns){ string name=col.ColumnName;//获取到DataColumn列对象的列名 dt.columns[行数][col.ColumnName].tostring()} foreach (System.Data.Da...

C# 添加对System.Configuration.dll文件的引用操作

却被编译器提示说: 警告 1 “System.Configuration.ConfigurationSettings.AppSettings” 已过时: “This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings” 于...

C# 中属性PropertyInfo的setvalue用法说明

下面是关于setvalue方法的介绍以及错误简介 用索引化属性的可选索引值设置指定对象的该属性值。 C# public virtual void SetValue (object obj, object value, object[] index); 参数 obj Object 将设置其属性...

C# 通过反射获取类型的字段值及给字段赋值的操

举例: 存在一个类: Public Class Student{ public string name; public int age;}Student stu1 = new Student(); 现在,我们想通过反射在运行时给stu1的name 和 age字段 赋值,让name = “小明”,age = 15,怎么做...

聊聊C# 中HashTable与Dictionary的区别说明

1. 哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;va...

C#使用struct直接转换下位机数据的示例代码

编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制。传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析。这样操作工作量比较大,对于...

C# 如何合并和拆分PDF文件

一、合并和拆分PDF文件的方式 PDF文件使用了工业标准的压缩算法,易于传输与储存。它还是页独立的,一个PDF文件包含一个或多个“页“,可以单独处理各页,特别适合多处理器系统的...

C# Invoke,begininvoke的用法详解

一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。 首先说下,invoke和begininvoke的使用有两种情况: 1. control中的invoke、...

C# StreamReader类实现读取文件的方法

在 C# 语言中 StreamReader 类用于从流中读取字符串。它继承自 TextReader 类。 StreamReader 类的构造方法有很多,这里介绍一些常用的构造方法,如下表所示。 构造方法 说明 StreamReader(Stream...

如何使用C#中的Lazy的使用方法

延迟初始化 是一种将对象的创建延迟到第一次需要用时的技术,换句话说,对象的初始化是发生在真正需要的时候才执行,值得注意的是,术语 延迟初始化 和 延迟实例化 的意思是相...

C#中获取数据的方法实例

之前学习的MVC的时候,想在项目里面的获取表格的数据是直接从数据库里面直接获取,然后写入方法,实现查询表格的数据,现在学习了C#,要经过三方查询,先在数据库查询字段,然...

详解如何在C#中使用投影(Projection)

投影(Projection) 是一种可以将查询结果进行 塑性 的一种操作,你可以使用 投影 将一个 object 转成仅包含你需要属性的新对象,这篇文章中,我们就一起看看如何使用 投影 功能。 C# 中的...

c#基于NVelocity实现代码生成

在框架开发过程中,通用代码生成是一项必不可少的功能,c#在这后端模板引擎这方面第三方组件较少,我这里选择的是NVelocity,现在升级到了NetStandard2.0,可以用于NetCore项目 添加引用...

如何使用C#修改本地Windows系统时间

C#提升管理员权限修改本地Windows系统时间 在桌面应用程序开发过程中,需要对C盘下进行文件操作或者系统参数进行设置,例如在没有外网的情况下局域网内部自己的机制进行时间同步...

在C#中使用MSMQ的方法

MSMQ (Microsoft消息队列)是Windows中默认可用的消息队列。作为跨计算机系统发送和接收消息的可靠方法,MSMQ提供了一个可伸缩、线程安全、简单和使用方便的队列,同时为你提供了在Win...

C# 中const,readonly,static的使用小结

平时在开发时经常会用到 const,readonly,static 关键字,可以肯定这些关键词是完全不同的概念,但有时候他们在用法上很相似以至于在场景中不知道选择哪一个,这篇文章我们就来讨论...

从Request.Url中获取根网址的简单操作

在拼接绝对路径的网址时,经常需要从Request.Url中获取根网址(比如https://git.oschina.net),然后与相对路径一起拼接为绝对路径。 以前的做法如下: var uri = Request.Url.Scheme + "://" + Reques...

C# 获取动态key的json对象的值案例

问题描述 如果直接获取某个json数组中的元素将得到如下的json { "44": { "height": 25, "appeared": -70000000, "length": 44, "order": "saurischia", "vanished": -70000000, "weight": 135000 }} 这个json对象如果使用C#类...

C# 关于爬取网站数据遇到csrf-token的分析与解决

需求 某航空公司物流单信息查询,是一个post请求。通过后台模拟POST HTTP请求发现无法获取页面数据,通过查看航空公司网站后,发现网站使用避免CSRF攻击机制,直接发挥40X错误。 关于...

C# 中如何使用Thread

线程是进程中的最小执行单元,多线程是指在给定时间内拥有多个线程的能力,并且可以调度它们从而在某一时刻处理多个操作,微软的 .Net Framework 提供了 Thread 来帮助我们完成多线程...

在C# 8中如何使用默认接口方法详解

前言 C# 8 中新增了一个非常有趣的特性,叫做 默认接口方法 (又称虚拟扩展方法),这篇文章将会讨论 C# 8 中的默认接口方法以及如何使用。 在 C# 8 之前,接口不能包含方法定义,只能...

c# 使用谷歌身份验证GoogleAuthenticator的示例

此功能相当于给系统加了个令牌,只有输入对的一组数字才可以验证成功。类似于QQ令牌一样。 一丶创建最核心的一个类GoogleAuthenticator 此类包含了生成密钥,验证,将绑定密钥转为二...

C#基于Twain协议调用扫描仪,设置多图像输出模式

出处:https://www.cnblogs.com/SunSpring Twain 随着扫描仪、数码相机和其他图像采集设备的引入,用户热切地发现了将图像整合到他们的文档和其他工作中的价值。然而,支持这种光栅数据的显...

c# 连接池的设置与使用

原由:许多用户可能在查询相同的数据库以获取相同的数据。在这些情况下,可以通过使应用程序共享到数据源的连接来提高应用程序的性能。否则,让每个用户打开和关闭单独的连接...

C#中ManualResetEvent用法总结

简单介绍 多个线程可以通过调用ManualResetEvent对象的WaitOne方法进入等待或阻塞状态。当控制线程调用Set()方法,所有等待线程将恢复并继续执行。 ManualResetEvent是如何工作的 在内存中保...

C# 如何实现一个基于值相等性比较的字典

Intro 今天在项目里遇到一个需求,大概是这样的我要比较两个 JSON 字符串是不是相等,JSON 字符串其实是一个 Dictionarystring, string 但是顺序可能不同,和上一篇 record 使用场景 中的第一个...

c# record的使用场景

Intro 之前我们有介绍过 record 基本知识, record 会实现基于值的类型比较,最近遇到的几个问题觉得用 record 来解决会非常方便,分享一下 基于值的类型比较 最近有遇到一个场景,需要...

C# 9 新特性——record的相关总结

目录 Intro Sample What inside More Reference Intro C# 9 中引入了 record,record 是一个特殊类,用它来实现 model 在有些情况下会非常的好用 Sample record RecordPerson{ public string Name { get; init; } public int...

c# 实现语音聊天的实战示例

一、语音聊天说专业点就是即时语音,是一种基于网络的快速传递语音信息的技术,普遍应用于各类社交软件中,优势主要有以下几点: (1)时效性:视频直播会因为带宽问题有时出...

巧用Dictionary实现日志数据批量插入

目录 背景 问题窥探 主要代码实现 背景 最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然...

C# Process调用外部程序的实现

前言 使用C#调用外部程序,一种是通过Process类,一种是通过命令行,本文主要说一下使用C#中的Process类调用外部程序的方式。 过程: 1. 创建Process对象 2. 配置启动选项(输入、输出等...

c# 用Dictionary实现日志数据批量插入

背景 最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然不合适,肯定是需要批量保存,提高...

c# 如何用lock解决缓存击穿

目录 背景 解决方案 1、设置热点数据永远不过期。 2、加互斥锁,互斥锁参考代码如下: 总结说明 1、缓存中有数据,直接走下述代码就返回结果了 2、缓存中没有数据,第1个进入的线...

C#基于jwt实现分布式登录

目录 一、传统的session登录 二、基于token的鉴权机制 三、Json web token 四、JWT的问题 一、传统的session登录 在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告...

C#9.0:Init相关总结

目录 背景 定义和使用 什么时候设置init访问器 init属性访问器和只读字段 类型层级间的传递 init在接口接口中应用 背景 在以前的C#版本里面,如果需要定义一个不可修改的的类型的做法...

C# 忽略大小写进行字符串比较

使用场景 字符串比较 在EF或者其他地方使用的时候,字符串的比较非常常见。 使用全部转化为大写或者小写进行比较,有时候并不能满足使用需求。 所以使用另外的字符串比较非常有...

C#调用usb摄像头的实现方法

1、下载AForge类库,下载地址:https://code.google.com/archive/p/aforge/downloads,我下载的版本是:AForge.NET Framework-2.2.5.exe; 2、下载安装好后,将下载类库中的 Release文件夹 复制到C#项目的可执行...

C# 关于AppDomain的一些总结

目录 前言 基本概念 实践 1. 首先准备一个控制台小程序 2. 编写使用 AppDomain 的程序 一些思考 1. 为什么不使用 AppDomain 实例的 Load 方法加载程序集 后记 前言 一直想写一个这样的程序:...

C# GUID ToString的使用总结

最近在看到小伙伴直接使用 Guid.ToString 方法,我告诉他需要使用 Guid.ToString(“N”) 的方式输出字符串 ,为什么需要使用 N 这个参数呢,因为默认的是参数 D 在输出的时候会出现连字符...

C# 实现视频监控系统(附源码)

去过工厂或者仓库的都知道,在工厂或仓库里面,会有很多不同的流水线,大部分的工厂或仓库,都会在不同流水线的不同工位旁边安装一台电脑,一方面便于工位上的师傅把产品的重...

使用C#实现数据结构堆的代码

目录 一、 堆的介绍: 二、 代码实现: 三、 使用测试: 一、 堆的介绍: 堆是用来排序的,通常是一个可以被看做一棵树的数组对象。堆满足已下特性: 1. 堆中某个节点的值总是不大...

C# 脚本引擎RulesEngine的使用详解

当编写应用程序时,经常性需要花费大量的时间与精力处理业务逻辑,往往业务逻辑的变化需要重构或者增加大量代码,对开发测试人员很不友好。 之前在这篇文章说过,可以使用脚本...

c# 单例模式的实现

记一下学习单例模式的笔记: 单例就是要保证该类仅有一个实例。实现完全封闭的单例(外部不能new)其实就要两点要求: 全局访问:需要一个该类型的全局静态变量,每次获取实例...

C# 使用PictureBox实现图片按钮控件的示例步骤

目录 引言 编译环境及说明 图片素材分割 事件处理 OnPaint事件 鼠标交互事件 代码汇总 引言 我们有时候会在程序的文件夹里看见一些图标,而这些图标恰好是作为按钮的背景图片来使用...

C# 开发日志本地化工具

程序员讨厌写文档, 讨厌写注释, 而我还讨厌写日志, 输出一个 "Id=5, 姓名=王大锤, 性别=男, 生日=2020年1月1日" 总归会用到字符串的填充 var log = $"Id={person.Id}, 姓名={person.Name}, 性别={(pers...

C# HttpClient 如何使用 Consul 发现服务

试用了Overt.Core.Grpc, 把 GRPC 的使用改造得像 WCF, 性能测试也非常不错, 非常推荐各位使用. 但已有项目大多是 http 请求, 改造成 GRPC 的话, 工作量比较大, 于是又找到了 Steeltoe.Discovery, 在...

c# RPC框架的使用简介

写在前面: RPC,听过很有段时间了,但是一直都不太清楚是干嘛的,今天我们来捋一捋。 解释: 【Remote Procedure Call Protocol】远程过程调用(就是说,A程序要调用一个b方法,然而这个...

C#数据结构之最小堆的实现方法

最小堆 基本思想:堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的,每次都取堆顶的元素,将其放在序列最后...

C#给Word不同页面设置不同背景

给Word文档设置背景时,通常只能针对整篇文档设置统一的背景,如果需要对某些页面单独设置背景,则需要通过另外的方式来实现。本文通过C# 程序代码演示如何来实现。并附VB.NET代码...