我有一个从数据库下载的数组,其中的属性 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”类型不支持“比较”约束。
我有一个奇怪的场景,使用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) 我一直在努力编写一个 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 的新手,所以我不确定这里有什么可能):
至于为什么这是必要的:我需要强制写入整数值,.0
因为我需要与之交互的非常具体的格式,它区分整数和浮点 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 来处理这个问题,所以如果我走的是正确的道路,请告诉我,但这里的任何提示/技巧将不胜感激!
我正在尝试反序列化从网络服务收到的 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 反序列化。我怎样才能使解串器解开/忽略数据标签并从该标签内的任何内容开始?
在下面的例子中,会发生什么?
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'?我认为派生类的成员'隐藏'基类的相同成员...
我有一个包含表情符号的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)
当我删除表情符号时它运作良好.
非常感谢你的帮助
尝试将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) 我在按钮的属性面板中找不到背景图像属性,我在解决方案的根目录中将每个按钮的图像存储为 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”属性中引用哪一部分?
我正在尝试将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) 这个函数给出了一个错误:
[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# 代码:
\nusing 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) 我需要通过拆分大图像来创建 30 * 30 px 小图像。我需要将这些部分分开后分别保存在单独的文件中,如下所示: