我有一个清单,里面有一些版本。
样本数据 :
"4.5","2.1","2.2.1","7.5","7.5.3","N/A","2.3.4.5"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,我正在尝试按降序对列表进行排序,降序3.8.5为invalidnumber&NA是无效的。
代码:
decimal result;
var sortedVData = vData.OrderByDescending(v => decimal.TryParse(v.vCode, out result) ? Convert.ToDecimal(v.vCode) : decimal.MaxValue);
Run Code Online (Sandbox Code Playgroud)
输出: "NA" , "7.5.3" , '2.3.4.5' , "2.2.1" , '7.5' , '4.5' , '2.1'
正如你在我看别的(:)条件我做decimal.MaxValue,使NA前来顶部是否有无效值(用任何文本字符串),但2.2.1应该是一个例外,应该数工作(强硬2.2.1或任意数量的具有多个小数一个是从版本的角度来看无效,我希望它们有条件地有效。
预期结果 : "NA" , "7.5.3" , "7.5" , "4.5" ,"2.3.4.5" ,"2.2.1" , "2.1"
我正在使用Xceed Extended WPF Toolkit来显示带有[Flags]属性的枚举PropertyGrid.
[Flags]
public enum TestEnum
{
Test1 = 1,
Test2 = 2,
Test3 = 4,
Test4 = 8,
Test5 = 16,
Test6 = 32,
Test7 = 64,
}
Run Code Online (Sandbox Code Playgroud)
因为我无法在编译时知道枚举定义,所以我将使用EnumBuilder动态创建枚举.
我创建了一个编辑器来显示枚举CheckComboBox:
public class CheckComboBoxEditor : TypeEditor<CheckComboBox>, ITypeEditor
{
protected override void SetValueDependencyProperty()
{
ValueProperty = CheckComboBox.SelectedValueProperty;
}
protected override CheckComboBox CreateEditor()
{
return new CheckComboBox();
}
protected override void ResolveValueBinding(PropertyItem propertyItem)
{
var _binding = new Binding("Value");
_binding.Source = propertyItem; …Run Code Online (Sandbox Code Playgroud) 我不知道如何确定 BMP 图像是否包含 BGR 或 BGRA 颜色。我编写了简单的 BMP 阅读器,但不同图像上有不同的值。
我已经找到了两个选择。
有什么方法可以从位图信息标题中找出哪个选项?
我正在编写一个函数来手动验证并获取jwt access_token的标头和有效负载对,我正在使用https://jwt.io/上提供的示例令牌进行测试,这时 我的代码非常简单
string[] tokenSegments = Token.Split('.');
string tokenHeaders = Encoding.UTF8.GetString(Convert.FromBase64String(tokenSegments[0]));
string tokenPayload = Encoding.UTF8.GetString(Convert.FromBase64String(tokenSegments[1]));
Run Code Online (Sandbox Code Playgroud)
当它到达tokenPayloadLine im时收到以下异常
System.FormatException:输入不是有效的Base-64字符串,因为它包含>一个非基本的64个字符,两个以上的填充字符或填充字符中的一个非法字符。在System.Convert.FromBase64CharPtr(Char * inputPtr,Int32 inputLength)在System.Convert.FromBase64String(String s)
并且在此级别抛出异常
Convert.FromBase64String(tokenSegments[1])
Run Code Online (Sandbox Code Playgroud)
请注意,我可以毫无例外地获取标头值
我尝试并编辑了令牌,以更改有效负载处可用的整数值以使其成为字符串,然后我成功获取了有效负载
只是比较,抛出异常的编码字符串是
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Run Code Online (Sandbox Code Playgroud)
工作正常的是
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoiMTUxNjIzOTAyMiJ9
Run Code Online (Sandbox Code Playgroud)
如果将它们都解码,您会发现唯一的区别是导致异常的整数值
难道我做错了什么?这不是转换功能的预期用途吗?任何想法或建议也将有所帮助,请注意,我需要手动执行此操作,因为我完全了解在线提供的jwt库。
为什么循环从2运行到7?
int i;
for(i=1;i<=6;printf("\n%d\n",i))
i++;
Run Code Online (Sandbox Code Playgroud)
这个的输出是
Run Code Online (Sandbox Code Playgroud)2 3 4 5 6 7
但限制i是6.
使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
driver_class: App\DBAL\Driver\PDOMySql\Driver
Run Code Online (Sandbox Code Playgroud)
和.env:
DATABASE_URL=mysql://root:passwd@127.0.0.1:3306/dbname
Run Code Online (Sandbox Code Playgroud)
我们无法通过 DBAL 连接到数据库:
$conn = DriverManager::getConnection(Constants::connectionParams,new Configuration());
Run Code Online (Sandbox Code Playgroud)
获取驱动程序中发生异常:找不到驱动程序异常。我在 S4 的这个版本中没有找到关于该错误的文档。
Elixir zip/2函数压缩两个列表,在到达较短列表的末尾时停止。我一直试图做相反的事情-本质上是从较短的列表中复制项目,直到到达最长的列表的末尾。
这是我所拥有的:
def zipReduce(m, n) when is_list(m) and is_list(n) do
{ long, short } = if length(m) > length(n)
do { m, n }
else { n, m }
end
Enum.reduce(0..Integer.mod(length(long), length(short)), [], fn i, acc ->
long
|> Enum.slice(length(short) * i, length(short))
|> Enum.zip(short)
|> Enum.into(acc)
end)
end
Run Code Online (Sandbox Code Playgroud)
它确实有效,但是我并不喜欢所有这些电话,length/1因为每个电话都需要完整的列表遍历,并且可能会减少很多。我可以将长度与短列表和长列表一起缓存在元组中,但这感觉非常必要(尽管如果需要,我会这样做以提高性能)。
有没有想到的方法?可能是完全不同的方法?
我有一个与 appSettings.json 的 Serilog 配置有关的问题。我的项目是一个控制台应用程序,基于.Net Core 3.0。我尝试设置 Serilog 以便将日志信息写入控制台和日志文件。
当我在代码本身中配置所有内容时 - 一切都按预期工作。
但是,当我尝试从 appsettings.json 文件导入 Serilog 配置设置时,我遇到了问题,我的 ConsoleSink 工作正常,但我的 FileSink 不行。
这是我在 appsettings.json 中写入的内容:
{
"Serilog": {
"Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": { "pathFormat": "Xlog.txt" }
},
{ "Name": "Console" }
]
}
}
Run Code Online (Sandbox Code Playgroud)
这是相关的代码:
IConfiguration configSerilog = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", true, true)
.Build();
log = new LoggerConfiguration()
.ReadFrom.Configuration(configSerilog)
.CreateLogger();
log.Information("Initializing Serilog....");
Run Code Online (Sandbox Code Playgroud)
我的“测试日志消息”显示在我的控制台窗口中,但我没有收到日志文件。
正如我所提到的,当我在代码本身中配置 Serilog 时,它就可以工作,而不是通过应用程序设置。因此,我确实拥有创建文件的适当访问权限。
有什么想法或提示吗?
在阅读 Angular 4 教程时,我发现了一种在函数中获取/设置参数的新方法。
onValueChange(data?: any)
Run Code Online (Sandbox Code Playgroud)
有什么作用??
当我使用 ZSH 的主题 Powerlevel10k 时,我遇到了问题?
