C#
文章平均质量分 50
zLulus
博客园地址:https://www.cnblogs.com/Lulus;
github:https://github.com/zLulus;
QQ:865514198;
CSDN维护较少,有事QQ联系。
展开
-
ASP .NET Core 设置枚举请求和返回使用字符串而非数字
在日常开发中,我们经常会遇到需要传参和返回枚举值,默认情况下我们使用数值,需要双方约定好各种数值代表什么。这样的表示并不明确,无法见名知意。所以我们有没有办法让传参变成字符串,并且我们还能正确转换成枚举值呢?答案是可以。用原生的或者的都可以实现。以下使用原生的说明,只需要在Program.cs添加如下配置即可。根据的说明,可以将枚举值转换为字符串以及从字符串转换为枚举值,并且支持自定义属性名称和值。如果想使用,可以参考。接下来写两个接口用于测试效果如下。原创 2023-03-08 09:43:05 · 775 阅读 · 0 评论 -
.NET Core .NET 6 为Swagger添加注释
选择需要生成注释文件(xml文件)的项目,右键编辑项目文件。同时,schema文件也有了注释(节选)原创 2023-03-07 21:54:35 · 946 阅读 · 0 评论 -
C# 保留n位小数的问题
我们在计算数字时,有时会需要保留几位小数,有时需要四舍五入,有时候需要直接舍弃后面的小数,有时候需要进一位,其实C#的方法有提供相应的选项,即。我们翻阅可以看到,有多参数重载。其中支持保留n位小数,并且选择四舍五入的策略。下面是例子代码在中,我们可以看到每一种枚举值的策略。AwayFromZero:舍入到最接近的数字的策略,当数字在两个数字之间的中间时,它将舍入到离零的最接近的数字。ToEven:舍入到最接近的数字的策略,当数字在两个数字之间的中间时,它将舍入到最接近的偶数。原创 2023-03-07 21:55:29 · 601 阅读 · 0 评论 -
Unity 使用Sqlite
Unity 使用Sqlite原创 2022-06-29 22:16:46 · 1044 阅读 · 0 评论 -
Visual Studio Installer问题:Your machine is busy installing a program other than Visual Studio
Visual Studio Installer问题:Your machine is busy installing a program other than Visual Studio原创 2022-06-29 22:15:34 · 462 阅读 · 0 评论 -
C#使用Elasticsearch获得原始查询(NEST)
在OnRequestCompleted方法中可以获得原始查询和查询结果关键代码如下ElasticClient elasticClient = new ElasticClient(new ConnectionSettings(new Uri(address)) //打印请求、回复,可能影响性能 .DisableDirectStreaming() .OnRequestCompleted(apiCallDetail原创 2022-03-30 19:26:40 · 2659 阅读 · 0 评论 -
C#使用Elasticsearch(NEST)
本文介绍C#使用Elasticsearch的基本方法,并提供一个demo以下说明中包含的http调用,为ElasticsearchTestController中编写的测试方法初始化引用NEST创建ElasticClient对象ElasticClient elasticClient = new ElasticClient(new ConnectionSettings(new Uri(address));新增索引关键代码CreateIndexResponse createIndexRespon原创 2022-03-30 19:25:41 · 4791 阅读 · 1 评论 -
ML .NET 异常情况检测
场景商品的价格会随时间发生变化,可以通过ML .NET的异常情况检测功能获得价格的拐点和峰值,为决策做参考数据集数据来自Every Cryptocurrency Daily Market Price原始数据包含币种symbol、时间date、开盘价open、最高价high、最低价low、收盘价close等多种数据这里只取Bitcoin在2013年4月28日至2018年11月29日的开盘价格,如图所示训练自动化ML尚不支持异常情况检测,所以这里需要正常的写代码根据教程:使用 ML.NET 检原创 2022-03-23 19:07:38 · 686 阅读 · 0 评论 -
XML转Json 设置指定节点为数组
原XML<response><itemList><item><number>5</number></item></itemList></response>不做处理,转成json{"response":{"itemList":{"item":{"number":"5"}}}}实际上item为集合对象,但是在item节点下只有一个数据的时候,默认转换成了对象而非数组希望转成下面的json{"respo原创 2022-03-23 19:06:04 · 1012 阅读 · 0 评论 -
ML .NET 电影评论情绪分析
场景给出一段电影评价的文字,判断其对电影的评价是积极的还是消极的虽然业务场景和之前的博客不同,但是实际上和ML .NET 预测订单是否被退货的内核是一样的,都是文本数据分类输入一些特征和结果,进行训练,之后使用模型,通过特征,推断结果训练数据数据来自IMDB Dataset of 50K Movie Reviews,包含两列评论review和情绪sentiment训练数据不需要额外处理实际上也可以使用中文的训练数据,在豆瓣等电影评论网站爬取即可训练模型训练方案选择数据分类训练环境选择原创 2022-03-21 20:03:47 · 1334 阅读 · 0 评论 -
C# 表达式树Expression
表达式相加//常量表达式Expression firstArg = Expression.Constant(2);Expression secondArg = Expression.Constant(4);//相加Expression addExpression = Expression.Add(firstArg, secondArg);Console.WriteLine(addExpression.ToString());将表达式编译成委托Console.WriteLine("将表达式原创 2022-03-18 14:14:43 · 829 阅读 · 0 评论 -
C# 监控文件变化
使用PhysicalFileProvider实现效果关键代码using Microsoft.Extensions.FileProviders;using Microsoft.Extensions.Primitives;IFileProvider fileProvider = new PhysicalFileProvider(文件夹路径);ChangeToken.OnChange( () => fileProvider.Watch(监控文件名), () => Sh原创 2022-03-18 14:14:26 · 1654 阅读 · 1 评论 -
ML .NET 猫狗图像分类
本文将使用ML .NET的图像分类对猫狗的图像数据进行训练,得到模型;并且开发一个简单的识别程序用来识别猫咪和狗狗。流程根据什么是 ML.NET 以及它如何工作?中的描述,我们知道,工作流如图:这里我按照我的理解重新画了一幅:首先我们需要准备训练数据集和测试数据集;然后通过训练数据集进行训练,获得训练模型;之后检验模型是否合格;如果合格,投入使用;如果不合格,重新设计训练数据集的数据,或者调参,重新训练,直至合格。数据集来源在kaggle Dogs vs. Cats中下载train原创 2022-03-18 14:14:06 · 1319 阅读 · 1 评论 -
.NET 6使用Redis
部署测试环境本地启动redis控制台 && 安装redis服务(用于调试)1.下载最新版redis,选择.zip则是免安装的版本下载地址 (这是封装好的基于windows的redis服务)2.解压到指定目录,并运行cmd命令3.在该文件夹下运行命令:redis-server.exe redis.windows.conf 4.看到如下显示,则表示启动成功5.将redis安装成服务在该文件夹下运行命令:redis-server.exe --service-原创 2022-03-18 14:13:35 · 1979 阅读 · 0 评论 -
ML .NET 电影推荐
参考Movie Recommendation我采用ML .NET自动化模型的推荐方案来完成这件事情场景根据用户以往对电影的评分,向用户推荐他/她可能感兴趣的电影,从而精确推广目标电影给可能感兴趣的用户群体比如,打开某部电影的介绍页面,会有“喜欢这部电影的人也喜欢”这样的栏目或者在用户页面,有推荐电影的栏目数据集原始数据是ml-latest-small.zip,包括4个.csv文件包含了用户id,电影id,电影名称,电影标签,用户对电影的评分,时间信息等信息实际上最后只使用了用户iduser原创 2022-03-18 14:13:18 · 446 阅读 · 0 评论 -
ML .NET 预测订单是否被退货
场景根据历史订单的退货情况,预测新订单是否被退货这次利用ML .NET的数据分类功能,将订单状态分为退货、不退货两种,计算每笔订单被退货、不被退货的概率需要注意的是,这里是文本数据分类,使用数据分类,而之前完成的猫狗分类,需要使用图像分类数据集数据来自Amazon Seller - Order Status Prediction描述:BL(Boss Leathers) 是一家小型皮革制品企业,最近开始在亚马逊上销售其产品。 目前,它在印度市场注册了大约 40 个 SKU。 在过去的几个月里,它因原创 2022-03-18 14:12:45 · 419 阅读 · 0 评论 -
C# 远程连接Linux执行命令
引用SSH.NETstring publicIP = "";int publicPort = 22;string userName = "root";string password = "";string command = "your command";using (SshClient client = new SshClient(publicIP, publicPort, userName, password)){ client.Connect(); SshComma原创 2022-03-17 07:54:15 · 2302 阅读 · 0 评论 -
Elasticsearch报错Result window is too large
具体报错如下{Type: search_phase_execution_exception Reason: "all shards failed" CausedBy: "Type: illegal_argument_exception Reason: "Result window is too large, from + size must be less than or equal to: [10000] but was [16000]. See the scroll api for a more ef原创 2022-03-17 07:49:09 · 1252 阅读 · 0 评论 -
ML .NET 二手车价格预测之评估(三)
在模型生成后,可以通过Evaluate方法进行评估//注意,这里使用txt或者tsv格式的文件string testCsvPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TrainData", "test-data2.txt");string modelDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Model");string modelPath原创 2022-03-17 07:48:43 · 247 阅读 · 0 评论 -
ML .NET 二手车价格预测之再次训练与参数调整(二)
再次训练与参数调整在UsedCarsPricePredictionMLModel.training.cs文件下,有训练设置与训练模型的方法BuildPipeline方法中是ML .NET自动生成的训练设置,包括选择了哪些参数,预测的字段是什么,以及调用LightGbm方法,参数配置为{ NumberOfLeaves=17, MinimumExampleCountPerLeaf=25, NumberOfIterations=6019, MaximumBinCountPe原创 2022-03-17 07:43:43 · 478 阅读 · 0 评论 -
ML .NET 二手车价格预测(一)
本文将使用ML .NET的回归模型对二手车的价格进行训练,得到模型;并且开发一个简单的预测程序用来预测二手车的价格。数据集来源在kaggle Used Cars Price Prediction中下载train-data.csv和test-data.csv,其中train-data.csv用于训练,test-data.csv用于评估打开train-data.csv进行查看,训练数据从左到右的列分别表示,序号、名称、所在地、年份、行驶车程、汽油种类、手动挡/自动挡、转手次数、里程、引擎、马力、座原创 2022-03-17 07:43:32 · 568 阅读 · 0 评论 -
C# 实现乐观锁
乐观锁的关键是通过版本号判断数据是否被修改,确定操作是否成功以下示例通过自增版本号的方式,判断是否更新数据数据库为sqlite数据库,包含一张myresource表,字段为Id、Version、Resource其中Id为主键,Version为版本号,Resource为业务数据关键代码using(DbConnection connection = new DbConnection(dbConnectionString)){ var resource = connection.Query&l原创 2022-03-17 07:43:23 · 844 阅读 · 0 评论 -
C# 获得调用者信息
public static void Run(){ //跟踪侦听 System.Diagnostics.Trace.Listeners.Add(new TextWriterTraceListener(System.Console.Out)); TraceMessage("First"); TraceMessage("Second"); TraceMessage("Third");}public static void TraceMessage(string?原创 2022-03-17 07:43:10 · 1135 阅读 · 0 评论 -
C# 转换枚举为字典
FieldInfo[] fields = typeof(EnumToDictionaryEnum) .GetFields(BindingFlags.Static | BindingFlags.Public) ?? Array.Empty<FieldInfo>();var dictionary = fields.ToDictionary(k => k.Name, v => (int)v.GetValue(null));var dictionary2 = Enum原创 2022-03-17 07:42:57 · 679 阅读 · 0 评论 -
UWP 指定应用主题RequestedTheme
遇到的问题一个UWP应用,在开发机上TextBlock显示文字正常,文字为黑色,背景为白色,而在另外一台电脑上TextBlock的文字突然“消失”了我开始以为是分辨率的问题,导致TextBlock不在原有的位置上,后面仔细比较设置,发现TextBlock应该还在原来的位置后面发现两台电脑的windows主题不一样,开发机是亮色主题,另外一台是暗色主题在暗色主题中,TextBlock显示成了白色,和背景白色区分不出来了,所以导致文字“消失”解决方案全局设置应用的主题public App(){原创 2022-03-17 07:42:34 · 204 阅读 · 0 评论 -
UWP Dispatcher用法
Task.Run(async () =>{ await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () => { ContentDialog dialog = new ContentDialog() { Title = "Test Dispatcher(测试Dispatcher)", De原创 2022-03-17 07:41:57 · 339 阅读 · 0 评论 -
UWP 阴影效果
引用Microsoft.Toolkit.Uwp.UI.Controls,使用DropShadowPanel<controls:DropShadowPanel Color="Black" OffsetX="10" OffsetY="10" BlurRadius="50" Shado原创 2022-03-16 10:26:29 · 234 阅读 · 0 评论 -
UWP 确认是否有弹窗显示
当应用已存在弹窗时,再显示其他弹窗,会提示某个异步操作没有正常启动。Only a single ContentDialog can be open at any time. at Windows.UI.Xaml.Controls.ContentDialog.ShowAsync() at ....... at System.Threading.WinRTSynchronizationContextBase.Invoker.InvokeCore()解决思路:判断当前是否有弹窗被展示原创 2022-03-16 10:25:48 · 333 阅读 · 0 评论 -
WPF 手写板
效果如图引用IACore.dllIALoader.dllIAWinFX.dllMicrosoft.Ink.Analysis.dllMicrosoft.Ink.dllSystem.Windows.Interactivity.dll关键代码通过RecognizeCommand获得StrokeCollection,笔画集合<InkCanvas x:Name="inkCanvas" Background="Transparent"> <i:Interaction.T原创 2022-03-16 10:25:16 · 647 阅读 · 0 评论 -
UWP 手写板InkCanvas
效果如图关键代码<InkCanvas x:Name="inkCanvas" />//设置绘画信息inkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch;InkDrawingAttributes i原创 2022-03-16 10:24:41 · 285 阅读 · 0 评论 -
WPF 启动带参数
两个项目WpfStartupWithArgsDemo(WPF项目)和WpfStartupWithArgsDemo.Console(控制台项目)启动控制台项目WpfStartupWithArgsDemo.Console,在代码中启动WpfStartupWithArgsDemo,并传递参数string exePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\..\\WpfStartupWithArgsDemo\\bin\\原创 2022-03-16 10:24:07 · 2027 阅读 · 0 评论 -
C# 报错:未通过等待任务或访问任务的 Exception 属性观察到任务的异常。因此,终结器线程重新引发了未观察到的异常。
英文异常信息:A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.如果创建了一个任务Task,并且从未调用过task.Wait()或尝试检索Task<T>的结果,那么当垃圾收集器收原创 2022-03-16 10:23:01 · 3194 阅读 · 0 评论 -
C# WindowFromPoint在64位程序中无效
WindowFromPoint() 不需要两个参数,它只需要一个,POINT类型的结构。在32位程序中可以以不同的方式传递参数,在64位模式下则不行,所以以下写法无效。[DllImport("user32.dll")]public static extern IntPtr WindowFromPoint(int xPoint, int yPoint);正确写法如下:Point=System.Drawing.Point[DllImport("user32.dll")]public static原创 2022-03-16 10:22:29 · 794 阅读 · 1 评论 -
WPF ComboBox设置选项与反显
效果如下:初始化后根据数据源反显选项,根据操作修改、清空数据源数据结构internal class SettingWithComboBoxDemoViewModel : INotifyPropertyChanged{ public ObservableCollection<FruitViewModel> Fruits { get; set; } private FruitViewModel selectFruit; public FruitViewModel原创 2022-03-16 10:21:24 · 1281 阅读 · 0 评论 -
WPF ListBox虚拟化
在ListBox加载大量数据的情况下,如果不进行虚拟化,内存将逐渐增大,长时间运行后将造成卡顿所以需要虚拟化写法<ListBox x:Name="listBox" VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.IsVirtualizing="True"> <ListBox.ItemsPanel> <ItemsPanelTemplate &g原创 2022-03-16 10:20:42 · 1135 阅读 · 0 评论 -
C# 删除正在使用的文件
思路:找到正在使用当前文件的程序,Kill程序,删除文件代码如下:string filePath = @"the file u want to delete";var processes= FileUtil.WhoIsLocking(filePath);foreach(var process in processes) process.Kill();File.Delete(filePath);FileUtil类public static class FileUtil{ [原创 2022-03-16 10:19:46 · 1189 阅读 · 0 评论 -
Bitmap使用注意事项
报错:对象当前正在其他地方使用System.Drawing.Bitmap如果跨线程使用,或者同时被多方调用,就会报错对象当前正在其他地方使用解决方案是新开线程就新建一个Bitmap副本,并且保证一个Bitmap对象同时只被一个地方使用复现这个问题的例子如下:string file="one image path";System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(file);Task.Run(() =>{ try原创 2021-12-10 15:31:56 · 2020 阅读 · 0 评论 -
C# DataTable转换为Entity(反射&&泛型)
public static IEnumerable<T> Parse<T>(IEnumerable<DataRow> rows) where T : class, new(){ if (rows == null || Enumerable.FirstOrDefault<DataRow>(rows) == null) return (IEnumerable<T>) new T[0]; PropertyInfo[] p原创 2020-12-17 14:09:47 · 263 阅读 · 0 评论 -
linq to entity GroupBy多个字段
var items = _voteRecordRepository.GetAll() .Where(x => programIds.Contains(x.ProgrammeId)) .GroupBy(x=>new {x.ClientType,x.ProgrammeId}) .Select((group)=>new ProgramVoteRecordSelectItem() {原创 2020-12-10 16:11:56 · 531 阅读 · 0 评论 -
C# Stream转Byte数组
//获得当前文件目录string rootPath = Directory.GetCurrentDirectory();string path = rootPath + "Your File Path";FileStream stream = new FileStream(path, FileMode.Open);//Position应该被重置为0,否则读取的时候会从最后开始读,读不出来┭┮﹏┭┮stream.Position = 0;MemoryStream ms = new MemorySt原创 2020-12-10 15:10:57 · 2773 阅读 · 2 评论