前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >常用C#代码「建议收藏」

常用C#代码「建议收藏」

作者头像
全栈程序员站长
发布于 2022-09-30 04:31:26
发布于 2022-09-30 04:31:26
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

常用C#代码

字符串处理

1.字符串截取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//字符串截取
//从此实例检索子字符串。 子字符串从指定的字符位置开始且具有指定的长度。
string.Substring(int index, int length);
//从此实例检索子字符串。 子字符串在指定的字符位置开始并一直到该字符串的末尾。
string.Substring(int index);

2. 字符串分割

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//字符串分割
//separator-char类型的数组分隔符,例:new char[]{‘,’, ‘|’}
string.Split(char[] separator);
// separator-string类型的分割符
string.Split(string separator);
//分割字符串并移除空的元素
string.Split(new char[] { 
 ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] strArray = 微信被监控人.Split(',');
foreach(string str in strArray){ 

微信被监控人List.Add(str);
}
string[] strArr = 多个物流详情.Split(new[] { 
"发货方式"},StringSplitOptions.None);

3. 字符串提取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//提取2个子字符串之间的内容
string a = "Document No. 4504038683\nDate 29.07.2021\nSupplier K701694\nBearbeiter/in M. Plückebaum\nPlease note on all documents!";
string startstr="Document No.";
string endstr="\nDate";
Regex rg = new Regex("(?<=(" + startstr + "))[.\\s\\S]*?(?=(" + endstr + "))", RegexOptions.Multiline | RegexOptions.Singleline);
Console.WriteLine(rg.Match(a).Value);
//提取所有数字
string 订单数量 = System.Text.RegularExpressions.Regex.Replace(数量, @"[^0-9]+", "");
//将小数提取2位,并且四舍五入
decimal dd= Math.Round((decimal)66.545, 2, MidpointRounding.AwayFromZero);
//带有小数点数字提取
string str = "提取123.11abc提取"; //我们抓取当前字符当中的123.11
str=Regex.Replace(str, @"[^\d.\d]", "");
// 如果是数字,则转换为decimal类型
if (Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$"))
{ 

decimal result = decimal.Parse(str);
Console.WriteLine("使用正则表达式提取数字");
Console.WriteLine(result);
}
//提取日期
var time = "";
string fileName = "行业大盘走势_童鞋_整体_20200701-20200731";
string pattern = @"_(?<time>20\d{6})";
var regResult = Regex.Match(fileName, pattern);
if (regResult.Success)
{ 

time = regResult.Groups["time"].ToString();
}
var uploadDate = DateTime.ParseExact(time, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
Console.WriteLine(uploadDate);

4. 查找字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//查找字符串
Indexof(Char C):  找到第一个字符c的index,如果没找到返回-1
Indexof(string str):  找到str的index,如果没找到返回-1
LastIndexof(string str):  返回当前字符或字符串的最后一个匹配项位置

5. 日期格式化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//格式化日期为“年年年年-月月-日日”:
DateTime.Now.ToString("yyyy-MM-dd");
//格式化日期为“年年年年-月月-日日 时时:分分:秒秒”:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//当前日期加上n天,n为负数则为减去n天:
DateTime.Now.AddDays(n);
//获取日期部分:
DateTime.Now.Year//获取当前年份
DateTime.Now.Month//获取当前月份
DateTime.Now.Day//获取当前月份第几天
//获取时间部分:
DateTime.Now.Hour//获取当前时间小时部分
DateTime.Now.Minute//获取当前时间分钟部分
// 日期纯数字字符串,转换成时间格式字符串
DateTime dt1 = DateTime.ParseExact("20211204050452", "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
Console.WriteLine(dt1.ToString("yyyy-MM-dd HH:mm:ss"));
//2个日期之差
DateTime dt1 = Convert.ToDateTime(最后动户日期);
DateTime dt2 = Convert.ToDateTime(currentdate);                
TimeSpan ts = dt2- dt1;
int days = ts.Days;
//字符串转日期,然后转格式
var dt_dtime = DateTime.Parse(身份证到期);
身份证到期 = dt_dtime.ToString("yyyy-MM-dd");
//判断日期是否大于某个
System.DateTime.Now.ToString("HH:mm:ss").CompareTo("18:00:00") > 0

6. 数字处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 数字整除
Math.Round(a/3)  四舍五入取整
Math.Ceiling(a/3) 向上取整,只要有小数都加1
Math.Floor(a/3) 向下取整,总是舍去小数
//保留小数位
1.保留N,四舍五入 .
decimal d= decimal.Round(decimal.Parse("0.55555"),2);
2.保留N位四舍五入
Math.Round(0.55555,2)
3,保留N位四舍五入
double dbdata = 0.55555;
string str1 = dbdata.ToString("f2");//fN 保留N位,四舍五入
4.保留N位四舍五入
string result = String.Format("{0:N2}", 0.55555);//2位
string result = String.Format("{0:N3}", 0.55555);//3位
5. 保留N位四舍五入 (不错)
double s=0.55555;
result=s.ToString("#0.00");//点后面几个0就保留几位

Datatable操作

1. 基础定义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//创建一个空表
DataTable  dt = new DataTable();
//创建带列名和类型名的列
dt.Columns.Add("姓名",System.Type.GetType("System.String"));
dt.Columns.Add("性别",System.Type.GetType("System.String"));
dt.Columns["product"].SetOrdinal(5);
//通过行框架创建并赋值
dt.Rows.Add("张三","男");//Add里面参数的数据顺序要和DataTable中的列的顺序对应
//通过复制dt2表的某一行来创建
dt.Rows.Add(dt2.Rows[i].ItemArray);
//对表已有行进行赋值
dt.Rows[0][1] = "张三"; //通过索引赋值
dt.Rows[0]["性别"] = DateTime.Now;//通过名称赋值

2. 筛选行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//选择column1列值为空的行的集合
DataRow[] drs = dt.Select("column1 is null");
//选择column0列值为"李四"的行的集合
DataRow[] drs = dt.Select("column0 = '李四'");
//筛选column0列值中有"张"的行的集合(模糊查询)
DataRow[] drs = dt.Select("column0 like '张%'");//如果的多条件筛选,可以加 and 或 or
//筛选column0列值中有"张"的行的集合并按column1降序排序
DataRow[] drs = dt.Select("column0 like '张%'", "column1 DESC");
//column为index的
DataRow[] drs = dt.Select("`1`is null");

3. 删除行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//使用DataTable.Rows.Remove(DataRow)方法
dt.Rows.Remove(dt.Rows[0]);
//使用DataTable.Rows.RemoveAt(index)方法
dt.Rows.RemoveAt(0);
//使用DataRow.Delete()方法
dt.Row[0].Delete();
dt.AcceptChanges();
//-----区别和注意点-----
//Remove()和RemoveAt()方法是直接删除
//Delete()方法只是将该行标记为deleted,但是还存在,还可DataTable.RejectChanges()回滚,使该行取消删除。
//用Rows.Count来获取行数时,还是删除之前的行数,需要使用DataTable.AcceptChanges()方法来提交修改。
//如果要删除DataTable中的多行,应该采用倒序循环DataTable.Rows,而且不能用foreach进行循环删除,因为正序删除时索引会发生变化,程式发生异常,很难预料后果。
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{ 

  dt.Rows.RemoveAt(i);
}
如果不用倒序:
for(int i = 0 ; i < 职工报税基表dt.Rows.Count ; i++){ 

if(string.IsNullOrEmpty(Convert.ToString(职工报税基表dt.Rows[i][0])) || Convert.ToString(职工报税基表dt.Rows[i][0]) == "" || Convert.ToString(职工报税基表dt.Rows[i][0]) == null ){ 

职工报税基表dt.Rows.RemoveAt(i);
i=i-1;
}
} 

4. 复制表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//复制表,同时复制了表结构和表中的数据
DataTable dtNew = new DataTable();
dtNew = dt.Copy();
//复制表
DataTable dtNew = dt.Copy();  //复制dt表数据结构
dtNew.Clear()  //清空数据
for (int i = 0; i < dt.Rows.Count; i++)
{ 

if (条件语句)
{ 

dtNew.Rows.Add(dt.Rows[i].ItemArray);  //添加数据行
}
}
//克隆表,只是复制了表结构,不包括数据
DataTable dtNew = new DataTable();
dtNew = dt.Clone();
//如果只需要某个表中的某一行
DataTable dtNew = new DataTable();
dtNew = dt.Copy();
dtNew.Rows.Clear();//清空表数据
dtNew.ImportRow(dt.Rows[0]);//这是加入的是第一行
//distinct
DataView dataView = 支付宝表dt2.DefaultView; 
DataTable 支付宝表dt2Distinct = dataView.ToTable(true,"商户订单号RPA");

5. 基础操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//判断DataTable是否为空:
DataTable != null && DataTable.Rows.Count > 0
//获取DataTable的行:
DataTable.Rows
//获取DataTable第i行第j列:
Object obj=DataTable.Rows[i][j];
//获取DataTable行数:
Int count = DataTable.Rows.Count;
//DataTable添加行:
DataRow dr = DataTable.NewRow();
dr[0]=object value;
dr[1]= object value;
dr[2]= object value;
…
dr[n]= object value;
DataTable.Rows.Add(dr);
alldt.Rows.Add(new String[]{ 
客户姓名, 客户号, 国籍或地区});
//获取DataTable列数:
Int count = DataTable.Columns.Count;
//获取第n列的列名:
string name = DataTable.Columns[n].ColumnName;
//DataTable排序:
//column为排序的列名,ASC为升序,也可设置为DESC降序
Table.DefaultView.Sort = “column ASC;
//排序后的table赋值给原table
Table = Table.DefualtView.ToTable();

6. DataTable获取差集,场景:不断抓取数据,只获取增量部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//获取蓝色部分,反之获取红色部分
IEnumerable<DataRow> rows = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default);
DataTable table_diff = rows.CopyToDataTable();

7. 去掉前后空格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach(DataRow row in dt.Rows){ 

foreach(DataColumn col in dt.Columns){ 

row[col] = row[col].ToString().Trim();
}    
}

其他常用点操作

1. 通配符

2. index处理

3. 列表List

先在编辑器中定义

这一步相当于C#中的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//定义
List<string> 记录单元格list = new List<string>();
//清除List
记录单元格list.Clear();
//增加数据
记录单元格list.Add(str1);
//赋值
记录单元格list = new List<String>{ 
"test"," test1"}

4. Try Catch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try{ 

Console.WriteLine("1");
}catch(Exception e){ 

Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}

5. 垃圾回收

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GC.Collect();

6. kill进程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"taskkill /f /t /im EXCEL.EXE"
"taskkill /f /t /im chrome.exe"

7. 邮箱处理

常用邮箱端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pop3:
Server name: partner.outlook.cn
Port: 995
Encryption method: TLS
smtp:
Server name: smtp.partner.outlook.cn
Port: 587
Encryption method: STARTTLS
imap:
Server name: partner.outlook.cn
Port: 993
Encryption method: TLS

邮箱模糊匹配

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@SQL= ""urn:schemas:httpmail:subject"" like '%学校%'"

8. 连接数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//MySQL
"Server=localhost;Port=3306;Database=new_schema;UID=root;PWD=123456;Max Pool Size = 100;Min Pool Size = 10;Charset=utf8"
//DB2
"Server=154.123.31.197:60000;Database=sjckdb;UID=user_select;PWD=user_select;Max Pool Size = 100;Min Pool Size = 10;"

9. 获取桌面路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GC.Collect();
desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
testFile = System.IO.Path.Combine(desktopPath, "RPATest.xlsx");
日志文件夹路径 = desktopPath + @"\RPA\日志";
日志文件路径 = System.IO.Path.Combine(日志文件夹路径, System.DateTime.Now.ToString("yyyyMMdd") + ".txt");

10. 通过命令行方式运行打开文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"cd /d D:\D\ & a.bat"

11. URL解码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//UrlDecode解码
url = System.Web.HttpUtility.UrlDecode(url, System.Text.Encoding.UTF8);
url = url.Replace("amp;","");

12. Cron表达式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0 0/30 * * * ?      //每半小时执行一次
0 0 0/1 * * ?       //每一小时执行一次

13. 定义一个静态函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** * 定义一个静态函数 */
static int hanshu(int a, int b, int c)
{ 

int total = a + b + c;
return total;
}

待续。。。。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月10日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
C# excel转换Json
参考案例:https://www.cnblogs.com/fengxiang/p/3551621.html
全栈程序员站长
2022/06/30
8160
C# excel转换Json
DataTable排序结果的纠正
默认情况下,即便db中某一列的值是数字,查询出来的DataSet/DataTable里,Column的类型都是String型,所以当用dataTable.DefaultView.Sort ="XXX ASC"排序时,都是按字符串排序处理的,并不是我们想要的结果,下面给出了二种解决办法: using System; using System.Data; namespace DataTableSortSample { class Program { static void Ma
菩提树下的杨过
2018/01/24
1.6K0
MSSQL数据批量插入优化详细
那么我们针对以上两点做优化,1、创建一次sqlcommon对象,只与数据库建立一次连接。优化改造代码如下:
Vincent-yuan
2020/04/10
1.4K0
MSSQL数据批量插入优化详细
C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:
代码伴一生
2021/09/22
2.6K0
.NET常用的扩展方法整理
using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Text.RegularExpressions; namespace IBO.XJMYQP.Utility { public static class Extens
跟着阿笨一起玩NET
2018/09/19
1.2K0
Datatable.select() 方法的使用
DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作,下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函数的重载,分别是
乔达摩@嘿
2020/09/11
1K0
C#:DataTable映射成Model
这是数据库开发中经常遇到的问题,当然,这可以用现成的ORM框架来解决,但有些时候,如果DataSet/DataTable是第三方接口返回的,ORM就不方便了,还得自己处理。 反射自然必不可少的,另外考虑到DataTable中的ColumnName通常与Model的PropertyName并不严格对应,可以用Attribute来记录这种映射关系。 步骤1:先创建一个DataFieldAttribute类 1 using System; 2 3 namespace Jimmy.ORM 4 { 5
菩提树下的杨过
2018/01/24
9420
.Net之Nopi Excel数据导出和批量导入功能
  它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能,并且还能通过其对应的属性对Excel进行对应的样式调整。是一个简洁而又强大的第三方库。
追逐时光者
2019/08/28
1.8K0
.Net之Nopi Excel数据导出和批量导入功能
简单代码生成器原理剖析(一)
上篇文章(深入浅出三层架构)分析了简单三层架构的实现。包括Model,DAL(数据访问层),BLL(业务逻辑层)的实现。 实际开发中,由于重复代码的操作,会花费大量时间,如果以代码生成器来自动生成三层
用户1161731
2018/01/11
1.4K0
简单代码生成器原理剖析(一)
利用Microsoft.VisualBasic中TextFieldParser解析器把CSV格式倒入数据库
写了个Demo,利用Microsoft.VisualBasic这个程序集中的TextFieldParser解析器解析CSV格式的文件,然后将解析的数据插入到相关表,这样的好处是不用去用令人头疼的ODBC去操作CSV格式文件,如之前是这样去操作: 利用ODBC去操作 string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + this.dirCSV.Trim() + ";Extensions=asc,csv,ta
用户1161731
2018/01/11
7520
NPOI操作EXCEL
------------------------------------------------------------------------
zls365
2020/10/30
1.9K0
NPOI操作EXCEL
C#操作json的通用帮助类
using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Reflection; using System.Data.Common; using System.Collections; using System.IO; using System.Text.RegularExpressions; using System.Runtime.Serialization.Jso
用户7108768
2021/11/02
1.4K0
C#WinForm基础编程
视频课:https://edu.51cto.com/course/20906.html
张哥编程
2024/12/13
1680
.NET程序设计复习总结
没有两三天.NET就要考试了,按照考试大纲自己梳理一遍( 临时抱佛脚 ) 有些知识点大纲不考就没总结,面向考试编程
唔仄lo咚锵
2020/09/15
1.5K0
一个封装好的CSV文件操作C#类代码
这个C#类用于转换DataTable为CSV文件、CSV文件转换成DataTable,如果需要进行CSV和DataTable之间进行转换,使用这个类非常合适。
用户7108768
2021/11/03
8310
关于asp.net与winform导出excel的代码
一、asp.net中导出Execl的方法: 在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。在Response输出时,t分隔的数据,导出execl时,等价于分列,n等价于换行。 1、将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中。
跟着阿笨一起玩NET
2018/09/19
5.8K0
C#小知识:“$”符号的作用
C#中符号是从C# 6.0版本开始推出的语法糖, 主要是对String.format()的简化,当然format也不是没有价值,本文将介绍C#中符及String.format的一些通用用法。
郑子铭
2023/11/15
8770
C#小知识:“$”符号的作用
C# NOPI 项目实战(经典)(可下载项目源码)
这篇文章主要介绍了如何安装NPOI,以及NPOI具体如何使用,并且用具体实例介绍了excel导入到datagridview以及 datagridview如何导出到excel并保存。如果不清楚这块的去我公众号去搜索这篇文章阅读。
zls365
2021/02/26
2.4K0
C#二十七 Dataset和DataAdapter
DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使DataSet中数据的更改与数据源保持一致。
张哥编程
2024/12/13
3130
C#二十七 Dataset和DataAdapter
使用NPOI导出,读取EXCEL(可追加功能)
使用NPOI导出,读取EXCEL,具有可追加功能 看代码 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using System.Data; 6 using NPOI.SS.UserModel; 7 using NPOI.XSSF.UserModel; 8 using NPOI.HSSF.UserModel; 9 10 name
冰封一夏
2019/09/11
2K0
相关推荐
C# excel转换Json
更多 >
目录
  • 常用C#代码
    • 字符串处理
      • 1.字符串截取
      • 2. 字符串分割
      • 3. 字符串提取
      • 4. 查找字符串
      • 5. 日期格式化
      • 6. 数字处理
    • Datatable操作
      • 1. 基础定义
      • 2. 筛选行
      • 3. 删除行
      • 4. 复制表
      • 5. 基础操作
      • 6. DataTable获取差集,场景:不断抓取数据,只获取增量部分
      • 7. 去掉前后空格
    • 其他常用点操作
      • 1. 通配符
      • 2. index处理
      • 3. 列表List
      • 4. Try Catch
      • 5. 垃圾回收
      • 6. kill进程
      • 7. 邮箱处理
      • 8. 连接数据库
      • 9. 获取桌面路径
      • 10. 通过命令行方式运行打开文件
      • 11. URL解码
      • 12. Cron表达式
      • 13. 定义一个静态函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档