小编dbc*_*dbc的帖子

在 F# 中,如何对 Nullable 属性进行排序?

我有一个从数据库下载的数组,其中的属性 service_time 是Nullable<DateTime>

service_time: Nullable<DateTime>
Run Code Online (Sandbox Code Playgroud)

在 F# 中,如何对这个数组进行排序,将 service_time = null 的所有元素放在新数组的最前面?

Array.sortBy (fun t -> t.service_time)
Run Code Online (Sandbox Code Playgroud)

给出:“Nullable”类型不支持“比较”约束。

f#

1
推荐指数
1
解决办法
60
查看次数

DotNetFiddle 和 Console.ReadLine 出现问题,导致按 ENTER 键时重新运行

我有一个奇怪的场景,使用C# 在线编译器和以下代码:

int randomNumber;
int guess;
int countGuess;
bool correctGuess = false;
bool alreadyCalled = false;
int lastGuess;

public void Main()
{
    if(!alreadyCalled)
    {
        RandomNumberGenerator();
        alreadyCalled = true;
    }
    GuessWhatNumber();
}

private void GuessWhatNumber()
{
    while(!correctGuess)
    {
        Console.WriteLine("Guess the number : ");
        guess = Convert.ToInt32(Console.ReadLine());
        
        if(guess > randomNumber)
        {
            Console.WriteLine("Too High");
            correctGuess = false;
        }
        else if(guess < randomNumber)
        {
            Console.WriteLine("Too Small");
            correctGuess = false;
        }
        else    
        {
            Console.WriteLine("Correct!");
            correctGuess = true;
            countGuess = 0;
            Environment.Exit(0);
        }
        
        if(lastGuess …
Run Code Online (Sandbox Code Playgroud)

c# console readline .net-fiddle dotnetfiddle

1
推荐指数
1
解决办法
1283
查看次数

如何使用 Utf8JsonWriter 在“.0”完好无损的情况下编写像“82.0”这样的浮点数?

我一直在努力编写一个 double,例如82.0使用 Utf8JsonWriter。

默认情况下,methodWriteNumberValue方法接受一个 double 并为我格式化它,并且格式(这是标准的“G”格式)省略了“.0”后缀。我找不到控制它的方法。

按照设计,我似乎不能只将原始字符串写入 Utf8JsonWriter,但我找到了一种解决方法:创建一个 JsonElement 并调用 JsonElement.WriteTo`。这会调用Utf8JsonWriter 中私有方法并将字符串直接写入其中。

有了这个发现,我做出了一个非常笨拙且效率低下的实现。

open System.Text.Json

void writeFloat(Utf8JsonWriter w, double d) {
  String floatStr = f.ToString("0.0################")
  JsonElement jse = JsonDocument.Parse(floatStr).RootElement
  jse.WriteTo(w)
}
Run Code Online (Sandbox Code Playgroud)

无论如何我都需要格式化一个double,这样很好,但是解析它,创建一个jsonDocument和一个JsonElement,只是为了能够找到一种调用受保护方法的方法,似乎真的很浪费。但是,它确实有效(我用 F# 编写并转换为 C#,如果我在语法中犯了错误,请道歉)。

有没有更好的办法?想到的一些潜在解决方案(我是 dotnet 的新手,所以我不确定这里有什么可能):

  • 有没有办法直接访问私有API?我认为子类化 Utf8Writer 可能会起作用,但它是一个密封类。
  • 我可以直接实例化一个 JsonElement 而不用整个解析繁琐吗?

至于为什么这是必要的:我需要强制写入整数值,.0因为我需要与之交互的非常具体的格式,它区分整数和浮点 JSON 值。(我对指数格式没意见,因为这显然是一个浮点数)。

.net c# system.text.json

1
推荐指数
1
解决办法
281
查看次数

C# Newtonsoft.Json 自定义反序列化器

我正在使用一个 API,它以与我习惯处理不同的方式返回结果,而且看起来不标准。

例如,以下是客户数据的片段:

{
    "CustomerID": {
        "value": "EXAMPLE"
    },
    "CustomerCurrencyID": {
        "value": "USD"
    }
}
Run Code Online (Sandbox Code Playgroud)

这个“value”属性似乎非常不必要,所以我想看看我是否可以绕过所有这些并将该 JSON 反序列化为一个对象,如下所示:

class Customer {
    public string CustomerID { get; set; }
    public string CustomerCurrencyID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在编写一个自定义 JsonConverter 来处理这个问题,所以如果我走的是正确的道路,请告诉我,但这里的任何提示/技巧将不胜感激!

c# json json.net

1
推荐指数
1
解决办法
8376
查看次数

How to ignore/unwrap object name when deserializing from JSON?

我正在尝试反序列化从网络服务收到的 JSON。JSON 看起来像这样:

{ "data": 
   [  
      {"name": "john", "company": "microsoft"}, 
      {"name": "karl", "company":"google"}
   ]
}
Run Code Online (Sandbox Code Playgroud)

我想要反序列化为的模型:

public class employee {
   public string name {get; set;}
   public string company {get; set;}

}
Run Code Online (Sandbox Code Playgroud)

问题是,由于该对象名称“data”,我无法使用 System.Text.Json 反序列化。我怎样才能使解串器解开/忽略数据标签并从该标签内的任何内容开始?

c# blazor system.text.json

1
推荐指数
1
解决办法
219
查看次数

C#隐藏成员

在下面的例子中,会发生什么?

class Base {
    public int abc = 3;
}

Class Derived : Base {
    public int abc = 2;
}

static void Main() {
   Derived blah = new Derived();
   Console.WriteLine(blah.abc);
}
Run Code Online (Sandbox Code Playgroud)

我相信你会在你的控制台上看到'2',但我正在阅读(和看到)反对...

为什么你会看到'3'而不是'2'?我认为派生类的成员'隐藏'基类的相同成员...

c# inheritance derived base member-hiding

0
推荐指数
1
解决办法
1285
查看次数

如何在C#中的json中反序列化表情符号

我有一个包含表情符号的json文件,当我想反序列化它时,它无法将表情符号反序列化为字符串.我的代码是:

var mystring ={"message":"jjasdajdasjdj laslla aasdasd ssdfdsf!!! \u{1F3FD}", "updated_time":"2015-04-14T22:37:13+0000", "id":"145193995506_148030368559"}

FaceBookIdea ideaDetails = JsonConvert.DeserializeObject<FaceBookIdea>((mystring).ToString());
Run Code Online (Sandbox Code Playgroud)

错误是:

{"Input string was not in a correct format."}
Run Code Online (Sandbox Code Playgroud)

当我删除表情符号时它运作良好.

非常感谢你的帮助

c# json json.net emoji

0
推荐指数
1
解决办法
1217
查看次数

C#反序列化JSON到列表

尝试将JSON字符串(包含多个对象)反序列化为List时遇到一个我不明白的问题。这是JSON。

[  
   {  
      "id":2,
      "name":"Race 1",
      "raceDateTime":"2017-09-02T14:27:39.654",
      "raceStartTime":"2017-09-02T14:27:39.654",
      "description":"string",
      "maxEntries":0,
      "currentEntries":0,
      "status":0
   },
   {  
      "id":3,
      "name":"Race 2",
      "raceDateTime":"2017-09-02T14:27:39.654",
      "raceStartTime":"2017-09-02T14:27:39.654",
      "description":"string",
      "maxEntries":0,
      "currentEntries":0,
      "status":0
   },
   {  
      "id":4,
      "name":"Race 3",
      "raceDateTime":"2017-09-02T14:27:39.654",
      "raceStartTime":"2017-09-02T14:27:39.654",
      "description":"string",
      "maxEntries":0,
      "currentEntries":0,
      "status":0
   },
   {  
      "id":5,
      "name":"Race 4",
      "raceDateTime":"2017-09-02T14:27:39.654",
      "raceStartTime":"2017-09-02T14:27:39.654",
      "description":"string",
      "maxEntries":0,
      "currentEntries":0,
      "status":0
   }
]
Run Code Online (Sandbox Code Playgroud)

然后,我有与我的模型匹配的JSON参数。

public class RaceModel
{

    public int id { get; set; }
    public string name { get; set; }
    public DateTime raceDateTime { get; set; }
    public DateTime raceStartTime { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

0
推荐指数
1
解决办法
4572
查看次数

如何在 WPF 应用程序中设置按钮的背景图像?

我在按钮的属性面板中找不到背景图像属性,我在解决方案的根目录中将每个按钮的图像存储为 Jpegs,该项目是 WPF,我不知道如何设置图像在 XAML 或 C# 代码中。我正在 Visual Studio 2017 社区版中进行开发

我之前见过的所有问题都是针对不同版本的Visual Studio,所以我找不到答案

*编辑 - 我试图在设计时在 XAML 编辑器中更改按钮的背景图像,而不是创建 onclick 按钮来更改背景图像。所以如果我在 XAML 中有这个按钮:

<Button x:Name="keyBtn" 
        Content="Keyboard/Mouse" 
        HorizontalAlignment="Left" VerticalAlignment="Top" 
        Width="400" Height="800" FontFamily="Verdana"         
        Background="#FFB41717" 
        Margin="0,-31,0,0"/> 
Run Code Online (Sandbox Code Playgroud)

我应该在“.background”属性中引用哪一部分?

c# wpf

0
推荐指数
1
解决办法
1万
查看次数

将Base64转换为字符串插入空格

我正在尝试将Base64编码的字符串转换为文本.我正在使用以下代码:

public static string Base64Decode(string base64EncodedData)
{
    var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
    return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
Run Code Online (Sandbox Code Playgroud)

不知何故,它确实有效,但它会在每个字符后面添加空格.此外,它在转换后的字符串的开头添加了一个无效字符.Base64字符串中的内容是一个XML,因此当它将其转换为文本并放入空格时,XML将变为无效.有没有替代方案?

这是转换后的示例输出:

? < ? x m l  v e r s i o n = " 1 . 0 "  e n c o d i n g = " U T F - 1 6 "  s t a n d a l o n e = " n o " ? >   < I m p o r t >     < o p …
Run Code Online (Sandbox Code Playgroud)

c# xml string base64

0
推荐指数
1
解决办法
182
查看次数

ASP.NET Core Task&lt;IActionResult&gt; 不能在没有异步的情况下返回 NotFound() 和 OK()

这个函数给出了一个错误:

[HttpPost]
public Task<IActionResult> Something (string value)
{
     Student student = new Student();
     if (value == "LOW")
     {
         return NotFound();
     }

     return Ok();
}
Run Code Online (Sandbox Code Playgroud)

此功能工作正常:

[HttpPost]
public async Task<IActionResult> Something (string value)
{
     Student student = new Student();
     if (value == "LOW")
     {
         return NotFound();
     }
     return Ok();
}
Run Code Online (Sandbox Code Playgroud)

当我尝试return NotFound();return Ok();当我asnyc之前不包含关键字时,Task如上所示,它给了我错误。但是,当我async在 前面添加关键字时Task,它在编译器中没有显示任何错误。你能告诉我是什么原因造成的吗?

c# asp.net-core

0
推荐指数
1
解决办法
734
查看次数

如何将 Newtonsoft.Json.Linq.JObject 转换为复杂类型?

给出以下 C# 代码:

\n
using Newtonsoft.Json;\nusing System;\n\nnamespace ConsoleApp2\n{\n    internal class Program\n    {\n        public class BatteryStatus\n        {\n            // The battery level reports percentage of the full battery.The field can take values from 0 to 100% (0x00 \xe2\x80\x93 0x64).\n            // The value 0xFF indicates a battery low warning.\n            public byte BatteryLevel { get; set; }\n\n            public bool LowBatteryWarning { get; set; }\n\n            public DateTime TimestampUtc { get; set; }\n\n            public BatteryStatus(byte batteryLevel)\n            {\n                TimestampUtc = DateTime.UtcNow;\n                if (batteryLevel == 0xff)\n                {\n                    LowBatteryWarning …
Run Code Online (Sandbox Code Playgroud)

c# json.net

0
推荐指数
1
解决办法
4961
查看次数

如何在python中将大图像拆分成小块

我需要通过拆分大图像来创建 30 * 30 px 小图像。我需要将这些部分分开后分别保存在单独的文件中,如下所示:

我需要将这些部分分别保存在单独的文件中

python opencv neural-network

-3
推荐指数
1
解决办法
8555
查看次数