C#
文章平均质量分 54
AI-剁椒鱼头
这个作者很懒,什么都没留下…
展开
-
将Json结构展平
技术群里面一个哥们在群里提了一个问题,怎么把Json的树形结构展平成一层。原创 2023-07-08 13:04:51 · 441 阅读 · 0 评论 -
C#之AES加密解密
AES加密标准又称为高级加密标准Rijndael加密法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。AES的基本要求是,采用对称分组密码体制,密钥长度可以为128、192或256位,分组长度128位,算法应易在各种硬件和软件上实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。原创 2022-10-25 15:55:43 · 2082 阅读 · 0 评论 -
C#之DES加密解密
DES算法是一种最通用的对称算法,因为算法本身是公开的,所以其安全性在于的安全性。基于的算法通常有两类:对称算法和公开算法。对称算法的对称性体现在加能够从解推算出来,反之亦然。在大多数对称算法中,加解密的是相同的,DES就是这样。可见,对称算法的加解都是保密的。而公开算法的加是公开的,解是保密的。原创 2022-10-24 12:52:06 · 3478 阅读 · 0 评论 -
C# .NET生成时间戳 秒,毫秒,解析时间戳为DateTime
时间戳的主要目的在于通过一定的技术手段,对数据产生的时间进行认证,从而验证这段数据在产生后是否经过篡改。所以时间戳服务的提供者必须证明服务中使用的时间源是可信的,所提供的时间戳服务是安全的。下面介绍最常见的几种时间戳协议,并对各个协议的原理进行分析。时间戳,又叫 Unix Stamp. 从 1970 年 1 月 1 日(UTC/GMT 的午夜)开始所经过的秒数,不考虑闰秒。原创 2022-09-30 10:22:42 · 5980 阅读 · 0 评论 -
C# .NET 实现 WebSocket服务端
WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的Websocket是一个持久化的协议原创 2022-09-28 11:46:58 · 6331 阅读 · 0 评论 -
C# 生成二维码
C#使用QRCoder组件来实现二维码的生成原创 2022-07-06 00:08:01 · 896 阅读 · 0 评论 -
C#中Cookie设置与读取
C#中Cookie设置与读取使用工具 http://www.lzltool.com/cookie2json 可以在线将Cookie转Json然后格式化预览Cookie原创 2022-06-22 00:01:22 · 2011 阅读 · 0 评论 -
C# JWT加密和解密,JWT跨域身份验证
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,该token也可直接被用于认证,也可被加密。......原创 2022-06-07 23:23:10 · 10407 阅读 · 0 评论 -
C#使用protobuf
编译依赖首先,创建一个C#4.5以上project,因为最新的protobuf依赖于C#5.0的语言特性。然后,我们通过nuget,为项目添加对protobuf的引用,搜索protobuf就可以开始安装了。编辑.proto文件,生成序列化文件例子:syntax = "proto3"; message pb_user_info { string user_id = 1; string leader_id = 2; repeated string members = 3;原创 2022-05-14 00:50:47 · 6278 阅读 · 0 评论 -
使用C#解逻辑题:小王、小张、小赵三个人是好朋友,他们中间其中一个人下海经商,一个人考上了重点大学,一个人参军了。此外他们还知道以下条件:小赵的年龄比士兵的大;大学生的年龄比小张小;小王的年龄和大学生
小王、小张、小赵三个人是好朋友,他们中间其中一个人下海经商,一个人考上了重点大学,一个人参军了。此外他们还知道以下条件:小赵的年龄比士兵的大;大学生的年龄比小张小;小王的年龄和大学生的年龄不一样。请推出这三个人中谁是商人?谁是大学生?谁是士兵?...原创 2020-12-04 10:13:03 · 9773 阅读 · 1 评论 -
C# 实现的简单三层架构代码生成器(开源)
简单三层架构代码生成器1.登录你的数据库服务器2.编辑页面,可以在此页面进行配置生成的数据库、生成表,以及各个层生成得到后缀名称,表注释字段注释等等3.选择需要生成的表4.设置命名空间、数据访问类名称,去除表名称前缀,还有各个层的表名称后缀,去除各个表的列名称前缀5.设置表注释,列字段注释6.选择生成代码的位置7.点击生成按钮生成代码8.生成的代码文件9.生成的表结构图10.生成的Model代码using System;using System.Collectio原创 2020-11-25 17:50:50 · 4455 阅读 · 2 评论 -
用c#自己实现一个简单的JSON解析器
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。相对于另一种数据交换格式 XML,JSON 有着诸多优点。比如易读性更好,占用空间更少等。在 web 应用开发领域内,得益于 JavaScript 对 JSON 提供的良好支持,JSON 要比 XML 更受开发人员青睐。所以作为开发人员,如果有兴趣的话,还是应该深入了解一下 JSON 相关的知识。本着探究 JSON 原理的目的,我将会在这篇文章中详细向大家介绍一个简单的JSON解析器的解析流原创 2020-07-20 09:15:46 · 713 阅读 · 0 评论 -
用c#每日更换“必应背景图片”为“桌面壁纸”
必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的壁纸。下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换实现思路获取必应每日图片地址下载必应每日图片到本地设置桌面背景图片设置程序自启动......原创 2020-04-08 09:26:30 · 1463 阅读 · 1 评论 -
LeetCode:缺失数字
目录题目内容解题解题思路代码实现改进一解题思路代码实现改进二解题思路代码实现题目内容给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?解...原创 2020-04-01 21:58:11 · 279 阅读 · 0 评论 -
LeetCode:有效的括号
目录题目内容解题解题思路代码实现改进改进思路代码实现题目内容给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例...原创 2020-03-29 17:01:16 · 200 阅读 · 0 评论 -
解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”和循环引用问题
DateTime类型数据格式问题问题在使用ASP.NET MVC 在写项目的时候发现,返回给前段的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前段来转换一下才能用来使用。C#对象属性名称转换成JSON自动转成“驼峰命名法”问题在C#中推荐的属性命名方式是“帕斯卡命名法”【首字母大写】但是在前段推荐命名方式为“驼峰命名法”【首字母小写】,这样如果直接序...原创 2020-03-28 18:28:36 · 1573 阅读 · 2 评论 -
LeetCode:帕斯卡三角形
目录题目内容解题思路代码实现题目内容给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]解题思路这道题让我们求杨辉三角,而在杨辉三角中,每个数是它左上方和右上方...原创 2020-03-22 15:29:21 · 275 阅读 · 0 评论 -
LeetCode:颠倒二进制位
目录题目内容代码实现题目内容颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 9641761...原创 2020-03-20 02:04:42 · 169 阅读 · 0 评论 -
CodeCarvings.Piczard 实现给图片加水印和生成缩略图(c#)
目录CodeCarvings.Piczard 组件NuGet 安装生成缩略图加水印加文字水印加图片水印封装的扩展方法扩展方法代码DEMO代码生成缩略图加文字水印加图片水印CodeCarvings.Piczard 组件这个组件比较强大但是接口不太友好NuGet 安装Install-Package CodeCarvings.Piczard生成缩略图//图像处理对象ImageProces...原创 2020-03-16 22:59:08 · 515 阅读 · 0 评论 -
LeetCode:汉明距离
标题题目内容解题方式一解题方式二题目内容两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置...原创 2020-03-15 00:04:37 · 288 阅读 · 0 评论 -
LeetCode:位1的个数
目录题目内容解题解题思路代码实现题目内容编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:0000000000...原创 2020-03-12 01:40:17 · 265 阅读 · 0 评论 -
EF导航属性使用常见异常
目录一、异常 The ObjectContext instance has been disposed and can no longer be used for operations that require a connection1.将导航属性改为“非延迟加载”2.将属性先在连接未释放前查询出来二、InvalidOperationException: 已有打开的与此 Command 相关联的...原创 2020-03-08 21:34:10 · 1143 阅读 · 0 评论 -
LeetCode:罗马数字转整数(c#)
文章目录题目内容解题解题思路代码实现一代码实现二题目内容罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000...原创 2020-03-06 23:40:40 · 281 阅读 · 0 评论 -
LeetCode:3的幂(c#)
题目内容给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?代码实现public class Solution { public bool IsPow...原创 2020-03-02 22:33:06 · 210 阅读 · 0 评论 -
LeetCode:计数质数(c#)
题目内容统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。代码实现(埃氏筛法)埃氏筛法的基本思想 :从2开始,将每个质数的倍数都标记成合数,以达到筛选素数的目的。public class Solution { public int CountPrimes(int n) ...原创 2020-02-25 21:43:22 · 213 阅读 · 0 评论 -
LeetCode:Fizz Buzz(c#)
一、题目内容写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", ...原创 2020-02-23 19:06:18 · 292 阅读 · 0 评论 -
通过表达式树实现,根据名称获取或设置对象属性值(性能相较于反射而言要快1~2倍)
一、介绍在日常的开发过程中会出现,需要根据名称来获取某个未知对象的属性,常用的方式是使用反射来完成此类效果,但是反射在性能方面要比较差,所以这个组件是使用反射+表达式树来实现的获取、设置属性值,在性能上要比纯反射速度要快1~2倍内部实现原理:1.根据传入类型反射获取是否有此属性类型相等或支持隐式转换或者里式转换2.根据反射的属性信息生成表达式树,编译成函数存入字典3.下次再获取就直接在...原创 2020-02-22 22:05:26 · 830 阅读 · 0 评论 -
LeetCode:最小栈(c#)
一、题目内容设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...原创 2020-02-19 16:24:58 · 208 阅读 · 0 评论 -
LeetCode:Shuffle an Array(c#)
题目内容打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始状态[1,2,3...原创 2020-02-15 13:38:05 · 263 阅读 · 0 评论 -
LeetCode:打家劫舍(c#)
题目内容你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后...原创 2020-02-14 22:19:05 · 250 阅读 · 0 评论 -
C#使用对象内容的线程锁定方式,而非使用引用的线程锁定方式(可以支持值类型作为锁定的资源,例如int等)
一、介绍在多线程中,每个线程都有自己的资源,但是有些数据是共享的,即每个线程都可以访问修改。这可能带来的问题就是几个线程同时执行一个数据,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。c#语言自带的lock(){}语句只能用于锁定引用类型,基于引用地址的锁定,但是如果遇到需要让值类型作为锁的业务情况【例如用户Id有可能是long类型】,也有可能是字符串类型需要作为锁定的值...原创 2020-02-07 18:07:38 · 735 阅读 · 0 评论 -
LeetCode:最大子序和(c#)
题目内容给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。代码实现public class Solution { public int MaxSubArray(int[] nums) ...原创 2020-02-05 20:19:47 · 399 阅读 · 0 评论 -
LeetCode:买卖股票的最佳时机(c#)
题目内容给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2020-02-02 17:40:34 · 585 阅读 · 0 评论 -
LeetCode:爬楼梯(c#)
题目内容假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意: 给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. ...原创 2020-01-31 18:35:26 · 597 阅读 · 0 评论 -
LeetCode:第一个错误的版本(c#)
题目内容你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试...原创 2020-01-29 19:07:13 · 521 阅读 · 0 评论 -
LeetCode:合并两个有序数组(c#)
题目内容给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nu...原创 2020-01-28 19:40:51 · 611 阅读 · 0 评论 -
LeetCode:将有序数组转换为二叉搜索树(c#)
题目内容将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / ...原创 2020-01-23 20:35:39 · 512 阅读 · 0 评论 -
LeetCode:二叉树的层次遍历(c#)
题目内容给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]实现方式一(递归)/** * Definition for a...原创 2020-01-21 15:33:13 · 1150 阅读 · 0 评论 -
LeetCode:对称二叉树(c#)
题目内容给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这...原创 2020-01-16 19:53:24 · 658 阅读 · 0 评论 -
LeetCode:验证二叉搜索树(c#)
题目内容给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 ...原创 2020-01-14 14:24:50 · 538 阅读 · 0 评论