
C#
Emm.....
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Asp.Net建站-创建项目发布(1)
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。问题1:由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。问题2:500.19无法访问请求的页面,因为该页的相关配置数据无效。显示发布成功后,记住发布地址(后面iis配置用)设置url地址->项目右键属性->去掉https 改为 http。编译后设置iis添加网站。此处添加上面发布的地址。将bin目录设置权限。原创 2022-10-11 15:07:39 · 339 阅读 · 1 评论 -
protobuf的使用
转完之后vs引用Google.Protobuf打开NuGet,搜索Google.Protobuf官方地址https://github.com/protocolbuffers/protobuf原创 2022-07-03 15:43:32 · 219 阅读 · 0 评论 -
.proto转.cs文件
1 首先你要有个.proto文件这里拿proto3举例2 安装转换工具protobuf-net.Protogen打开cmd执行安装dotnet tool install --global protobuf-net.Protogen --version 3.0.101我这已经安装所以显示已经安装以下是官方网址,如果需要其他版本可以打开查看https://www.nuget.org/packages/protobuf-net.Protogen3找到刚才安装目录拷贝文件路径.原创 2021-09-05 14:26:57 · 816 阅读 · 0 评论 -
Linq group by 分组求总数
员工属性表: 公司id 员工id 员工年龄需求:现在有2个公司,需要统计两个公司的员工年龄大于30岁的人数结果预期公司:1age30+:1-------公司:2age30+:3代码如下: List<aa> a = new List<aa>(); a.Add(new aa(1, 1,18)); a.Add(new aa(1, 2,15)); a.Add(new..原创 2020-08-13 11:35:23 · 1438 阅读 · 0 评论 -
List<T> 的ToDictionary使用
举个栗子类定义 public class test { public test(int _id, int _age, string _name) { id = _id; age =_age; name =_name; } public int id; public int age; .原创 2020-08-06 13:22:48 · 1581 阅读 · 0 评论 -
两结构组合新结构linq级联查询例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp12{ public.原创 2020-08-04 17:36:57 · 340 阅读 · 0 评论 -
DataTable转List<T>
private List<T> ToList<T>(DataTable dt) { List<object> lst = new List<object>(); //获取列名 List<string> columnNames = dt.Columns.Cast<DataColumn>() ...原创 2020-08-04 16:31:13 · 197 阅读 · 0 评论 -
正则表达式基本用法收藏
基本符号:^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)$ 表示匹配字符串的结束位置* 表示匹配 零次到多次+ 表示匹配 一次到多次 (至少有一次)? 表示匹配零次或一次. 表示匹配单个字符| 表示为或者,两项中取一项( ) 小括号表示匹配括号中全部字符[ ] 中括号表示匹配括号中一...转载 2019-06-18 11:42:35 · 136 阅读 · 0 评论 -
泛型的5种约束,泛型where的使用
泛型后面跟着where是干嘛的呢? class A<T> where T:new() 这是类型参数约束,where表名了对类型变量T的约束关系。where T:A 表示类型变量是继承于A的,或者是A本省。where T: new()指明了创建T的实例应该使用的构造函数。 .NET支持的类型参数约束有以下五种:where T: struct T必须是一个...原创 2019-06-27 16:21:43 · 2317 阅读 · 0 评论 -
DataTable与DataRow[]互转
//DataTable 转DataRow[]DataRow[] drArrary = dt.Select();//DataRow[] 转DataTable DataTable dtOnline = drArrary.CopyToDataTable();原创 2019-06-17 11:14:47 · 4203 阅读 · 0 评论 -
string剔除结尾字符
//如果结尾是字符串string asd = ""; for (int i = 0; i < 10; i++) { asd += i + " 设备 and "; } asd=asd.TrimEnd(new []{ 'a','n', 'd'});//如果结尾是字符str...原创 2019-06-20 17:15:38 · 1398 阅读 · 0 评论 -
使用dapper实现实体查询
SQL语句查询转结构先下载一个dapperhttps://dapper-tutorial.net/zh-CN/home添加dapper引用 IDbConnection dapperStation = new SqlConnection(连接字符串); List<你的结构> dictItemList = dapperStation.Query<你的结构>...原创 2019-06-19 15:36:05 · 1300 阅读 · 0 评论 -
dev_dataGridView 分组栏收缩模式
for (int i = -1; gridView1.IsGroupRow(i); i--){int row = gridView1.GetDataRowHandleByGroupRowHandle(i);DataRow dr = gridView1.GetDataRow(row);if (dr == null) return;if (dr["Group"].ToSt...原创 2019-06-14 10:54:27 · 1250 阅读 · 0 评论 -
Visual Studio 插件的开发(转)
起因在做项目的时候,经常需要根据表结构create一些实体类,写多了,实在是觉得无趣,于是就琢磨着做个代码生成工具。当然现在有很多现成的,拿来用就好,可是总想自己弄个出来玩玩,一来是当初用DataSet,VS可以根据一个xsd文件生成那么多代码,可以拖拖拽拽就搞定,一直没闹明白是怎么做的,不甘心,总想弄明白,二来,公司里,数据库的脚本大多是根据一个xml配置文件生成的,这样,我拿到这个xml生...转载 2019-05-30 14:17:50 · 1358 阅读 · 0 评论 -
正则表达式匹配字符串
爬IP使用到的效率爬ip方法(限结构不一致,无规律的情况) Regex r =new Regex(@"((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)"); Match m = r.Match(@"<dr>192.168.0.1</dr&...原创 2019-06-27 14:36:21 · 824 阅读 · 0 评论 -
C#实现全局热键
创建form窗体实现功能自由发挥using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtime.InteropServices;usin...原创 2019-06-27 12:01:14 · 1460 阅读 · 0 评论 -
SqlServer存储过程基础语法
一、定义变量--简单赋值 declare @a intset @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @user1='张三'print @user1 declare @user2 nvarchar(50) select @user2 = Name fr...原创 2019-09-23 15:00:16 · 661 阅读 · 0 评论 -
是否提示框,确认取消提示框
删除提示框的按钮框架,写一个用到了查 try { if ( MessageBox.Show("是否删除?","提示",MessageBoxButtons.YesNo)==DialogResult.Yes) { //进行删除 ...原创 2019-01-10 16:14:00 · 1009 阅读 · 0 评论 -
List.Exists的使用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System....原创 2019-05-14 14:34:51 · 3955 阅读 · 0 评论 -
TXT文件读取操作
添加引用using System.IO; StreamReader sr = new StreamReader("文件路径", Encoding.Default);一行一行的读取 string cfg=""; while ((content = sr.ReadLine()) != null){ cfg += content;}全部读取 s...原创 2019-04-26 11:28:33 · 249 阅读 · 0 评论 -
保存文件对话框,选择文件对话框 demo
当文件保存时,选择保存对话框使用 //数据导出 SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "Excel文件(*.xls)|*.xls"; saveFileDialog1.Filter...原创 2019-01-09 16:07:20 · 1086 阅读 · 0 评论 -
封装控件事件
实现个小功能需求:点击textBox1 控件 需要显示位置,生成控件后还需要实现点击事件1创建封装事件 public event Action<object, MouseEventArgs> MouseClick_ex;2创建事件实现功能,调用新事件 private void textBox1_MouseClick(object...原创 2019-01-03 11:31:20 · 277 阅读 · 0 评论 -
关于dataGridView的常用设置
每次都要查百度,这次干脆自己写个配置单,以后就看自己博客了。。。 //设置多行选择MultiSelect=false//设置不可编辑EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;//设置选择一整行SelectionMode = System.Windows.Forms.Dat...原创 2019-01-07 14:26:37 · 223 阅读 · 0 评论 -
异步函数调用与实现
写了个小DEMO private void button1_Click(object sender, EventArgs e) { Task.Run(() => { for (int i = 0; i < 100; i++) { ...原创 2019-01-02 16:07:54 · 1096 阅读 · 0 评论 -
版本控制工具(网站发布2)
现学现卖编译好没问题 右键发布 然后设置好导出地址发布就好了原创 2018-12-25 19:30:48 · 201 阅读 · 0 评论 -
浅谈c#中的delegate和event用法,动态调用函数
一、开篇忏悔对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那。好了,那就趁着阳光明媚的早晨简单来谈谈delegate和event的简单用法吧,希望能给初学者带来帮助。PS:别像我那样学了几年c#到头来都不知道delegate和event怎么用。二、delegate到底是什么东西孩子,C语言总学过吧,如果你学得不像我那...转载 2018-12-19 12:01:57 · 525 阅读 · 0 评论 -
利用Skip与Take实现分页取数
Skip : 跳过n条数据Take : 取出多少个数据 //20个分页 int c = 20; List<int> a = new List<int>(); //准备100个数据 for (int i = 0; i < 100; i++)...原创 2018-12-21 14:05:14 · 2512 阅读 · 0 评论 -
Linq初学用法(1)
对Dictionary查询 Dictionary<string, tableInfo> _structTable; /* _structTable添加了内容 */ List<string> sd = (from tb in _structTable ...原创 2018-12-14 09:00:12 · 170 阅读 · 0 评论 -
C#以字符串分隔
比如使用\r\n进行分割 string a = "asd\r\nasd\r\nasd\r\nasd\r\nasd\r\nasd\r\n"; a.Split(new string[] { "\r\n" }, StringSplitOptions.None);//不剔除空字符串 a.Split(new string[] { "\...原创 2018-12-14 08:51:45 · 769 阅读 · 0 评论 -
Stopwatch测量运行时间类使用
Stopwatch sw = new Stopwatch(); sw.Start(); //计时开始 //需要计时的代码sw.Stop(); //计时结束//输出代码执行时间(单位毫秒)string str = (sw.ElapsedMilliseconds).ToString(); ...原创 2019-01-23 10:19:59 · 823 阅读 · 0 评论 -
MessageBox是否选择对话框(退出删除等判读时可参考使用)
当退出,删除或者其他重要操作时,需要提示用户,xxxxx是否要操作? 是,否举例: if (DialogResult.No == MessageBox.Show("是否关闭?", "提示", essageBoxButtons.YesNo)) { e.Cancel = true; } ...原创 2019-02-15 12:14:37 · 1719 阅读 · 0 评论 -
利用反射 DataRow 转model 结构
反射 Table 转model 结构 public Object GetObj2<T>(DataRow dr, out string err) { try { err = ""; Type target = typeof(T); ...原创 2019-04-10 20:24:40 · 803 阅读 · 0 评论 -
Linq初学用法(3) 从dataTable 取出一列值
List<string> timeList = (from d in _dt_base.AsEnumerable() select d.Field<string>("gettime")).ToList();Dictionary<string, DataRow> _dic_base = _dt_base.Rows.Cast<DataRow>...原创 2019-03-31 10:22:07 · 1232 阅读 · 0 评论 -
延迟事件,避免重复事件响应导致程序卡顿
有时会在事件中执行比较繁琐的函数,,但是同时 这事件又有可能会频发触发,影响用户体验比如一个serach 搜索框,按住Del时 会频繁触发,每删除一个字都会触发一次解决方案1制定定时器2一个线程递减定时器3当定时器被减到0时触发事件4事件重复执行时会重置定时器这样起到延迟作用设定全局变量,判定条件与定时器(频繁读取控件会导致内存溢出,建议使用变量) ...原创 2019-03-26 16:15:07 · 634 阅读 · 3 评论 -
简单使用Task示例
简单使用Task示例Task t1 = Task.Factory.StartNew(delegate { 需要实现的功能});t1.Wait();原创 2019-03-26 09:35:07 · 232 阅读 · 0 评论 -
原生checkedList控件,改良版(C#)
原生checkedList控件用起来很蛋疼,首先选中一个选项后才能进行勾选,有强迫症的程序员用起来极其不适应,可以在事件中稍微改良一下,废话不多说,直接上代码,自己保留日后有用//定义全局变量int checkedListIndex = -1;//选择事件private void checkedListBox1_SelectedIndexChanged(object sender, E...原创 2019-03-20 10:54:38 · 241 阅读 · 0 评论 -
Linq初学用法(2)
//功能实现:清理某个文件夹某个类型文件DirectoryInfo dir = new DirectoryInfo(Application.StartupPath);//返回目录中所有文件和子目录FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //linq查询出MP3的文件List<FileSystemInfo>...原创 2019-03-20 09:46:47 · 132 阅读 · 0 评论 -
将DataTable中的某列转换成数组或者List
string[] arrRate = dtRate.AsEnumerable().Select(d => d.Field<string>("arry")).ToArray();List<string> litRate = dtRate.AsEnumerable().Select(d => d.Field<string>("arry")).ToLi...原创 2019-03-10 15:51:26 · 7928 阅读 · 1 评论 -
C#路径中获取文件全路径、目录、扩展名、文件名称 常用函数
需要引用System.IO 直接可以调用Path的静态方法class Program { static void Main(string[] args) { //获取当前运行程序的目录 string fileDir = Environment.CurrentDirectory; ...原创 2019-03-02 08:00:22 · 221 阅读 · 0 评论 -
正确的Json例子,解析与实例化
使用到动态库Newtonsoft.Json.dllJson使用举例:{ "name": "liuhan", "age": 10, "skill": ["C++", "C#", "Java", "Delphi"]} //自定义结构public class MyResult{ public string n原创 2019-02-15 14:12:22 · 1740 阅读 · 0 评论