我想匹配字符串与通配符(*),其中通配符表示"任何".例如:
*X = string must end with X
X* = string must start with X
*X* = string must contain X
Run Code Online (Sandbox Code Playgroud)
此外,一些复合用途,如:
*X*YZ* = string contains X and contains YZ
X*YZ*P = string starts with X, contains YZ and ends with P.
Run Code Online (Sandbox Code Playgroud)
有一个简单的算法来做到这一点?我不确定使用正则表达式(虽然这是一种可能性).
为了澄清,用户将在上面输入一个过滤器框(尽可能简单的过滤器),我不希望他们自己编写正则表达式.所以我可以很容易地从上面的符号转换出来的东西会很好.
我有一些string,我想用使用C#的SHA-256哈希函数来哈希它.我想要这样的东西:
string hashString = sha256_hash("samplestring");
Run Code Online (Sandbox Code Playgroud)
框架中是否有内置功能可以执行此操作?
在 .NET<5 和 .NET Core 3.1 中,以下代码
var d = new Dictionary<string, int> { { "a", 0 }, { "b", 0 }, { "c", 0 } };
foreach (var k in d.Keys)
{
d[k]+=1;
}
Run Code Online (Sandbox Code Playgroud)
投掷
System.InvalidOperationException:集合已修改;枚举操作可能无法执行。
当面向 .NET 5 时,代码段不再抛出。
发生了什么变化?
我未能在Breaking changes in .NET 5和Performance Improvements in .NET 5 中找到答案。
是不是和什么有关ref readonly T?
我有2个字符串
string a = "foo bar";
string b = "bar foo";
Run Code Online (Sandbox Code Playgroud)
我想从检测的变化 a来b.我有什么角色改变,从中获取a到b?
我认为必须对每个字符进行迭代,并检测它是否被添加,删除或保持相等.所以这是我的表达结果
'f' Remove
'o' Remove
'o' Remove
' ' Remove
'b' Equal
'a' Equal
'r' Equal
' ' Add
'f' Add
'o' Add
'o' Add
Run Code Online (Sandbox Code Playgroud)
结果的类和枚举:
public enum Operation { Add,Equal,Remove };
public class Difference
{
public Operation op { get; set; }
public char c { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案,但"删除"案例对我来说并不清楚代码的外观
public static List<Difference> CalculateDifferences(string left, string right) …Run Code Online (Sandbox Code Playgroud) 我是可空的新手。
可能的符号之间是否存在有意义的差异?
string?[] str
string[]? str
甚至string?[]? str似乎都是有效的
float ff = (float)31.15;
double dd = 31.15;
var frst = Math.Round(ff, 1, MidpointRounding.AwayFromZero);
var drst = Math.Round(dd, 1, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)
第一次:31.1
第一次:31.2
有人可以解释原因吗?
我的ASP.NET MVC应用程序中有以下C#代码.我尝试string使用该Equals方法比较2 culture = "vi".我的代码如下:
string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
var xx = string.Equals("TestGID", "TestGID", StringComparison.CurrentCultureIgnoreCase);
var zz = string.Equals("id", "ID", StringComparison.CurrentCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
结果:
CCC = false ;
xx = true;
zz = true;
我不知道为什么CCC是false.有什么不对的吗?如果我设置culture = id, ko, en等等......那么CCC = true.谁能帮我?
我正在使用以下内容更改文本文件的创建日期:
using System.IO;
...
DateTime newCreate = new DateTime(year, month, day, hour, minutes, seconds);
File.SetCreationTime("changemydate.txt", newCreate);
Run Code Online (Sandbox Code Playgroud)
然而,这没有任何作用.没有错误消息,但它根本不会更改文件的日期.
我在Dropbox文件夹和随机文件夹中尝试了这个但没有成功
该DateTime newCreate对象似乎是正确的.
如果有人能指出我的想法,那就太好了......
所以我在想,你如何将小数部分转换为十六进制分数?什么是转换的方法,有没有捷径?
为什么double.IsNegative(double.NaN)意外返回true而按预期double.NaN < 0返回false?