в с# нет map, а есть словари. но если я делаю attribureValues словарем (ключ-значение), то выходит ошибка:
невозможно преобразовать тип dictionary в тип mapEntryStringString.
var path = "...";
var lines = await File.ReadAllLinesAsync(path);
var allCredentials = lines.Select(Credentials.Parse).ToList();
public record Credentials(string Username, string Password) {
public static Credentials Parse(string line) {
var parts = line.Split(':');
return new(parts[0], parts[1]);
}
}
Но мне нужно, что бы путь ссылался на уже скомпилированную директорию
var a = "TOM";
var parts = a.Split(new [] { "O" }, 2, StringSplitOptions.None);
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<!-- Вот это самое главное -->
<PublishSingleFile>true</PublishSingleFile>
<!-- Это чтобы тащить за собой рантайм До .NET 6 будут рядом лежать нативные библиотеки jit-а и сборщика мусора-->
<SelfContained>true</SelfContained>
<!-- Это необходимо, чтобы сборщик понимал, для какой ОС нужен экзешник -->
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<!-- Это чтобы ускорить запуск -->
<PublishReadyToRun>true</PublishReadyToRun>
<!-- Эти две строки, чтобы уменьшить размер бинарника -->
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>link</TrimMode>
</PropertyGroup>
</Project>
Ну в общем , в пайтоне есть такие списки когда ты делаешь название элемента списка (например "имя") и напротив него через : что то для этого элемента (например "Егор")
using System.Collections.Generic;
//...
var skinPrices = new Dictionary<string, int> {
["Очень редкий скин"] = 100500
["Очень не редкий скин"] = 1
};
#r "nuget:Newtonsoft.Json/13.0.1"
using Newtonsoft.Json;
var json = @"
{
""success"": 1,
""result"": {
""total"": 3,
""limit"": 0,
""offset"": null,
""stocks"": [
{
""номенклатураGUID"": ""GUID"",
""складGUID"": ""GUID"",
""назначениеGUID"": ""GUID"",
""остаток"": 1,
""rn"": 1
},
{
""номенклатураGUID"": ""GUID"",
""складGUID"": ""GUID"",
""назначениеGUID"": ""GUID"",
""остаток"": 65,
""rn"": 2
},
{
""номенклатураGUID"": ""GUID"",
""складGUID"": ""GUID"",
""назначениеGUID"": ""GUID"",
""остаток"": 13,
""rn"": 3
}
]
}
}
";
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class Stock
{
[JsonProperty("номенклатураGUID")]
public string НоменклатураGUID { get; set; }
[JsonProperty("складGUID")]
public string СкладGUID { get; set; }
[JsonProperty("назначениеGUID")]
public string НазначениеGUID { get; set; }
[JsonProperty("остаток")]
public int Остаток { get; set; }
[JsonProperty("rn")]
public int Rn { get; set; }
}
public class Result
{
[JsonProperty("total")]
public int Total { get; set; }
[JsonProperty("limit")]
public int Limit { get; set; }
[JsonProperty("offset")]
public object Offset { get; set; }
[JsonProperty("stocks")]
public List<Stock> Stocks { get; set; } //Вот тут у вас просто Stock
}
public class Root
{
[JsonProperty("success")]
public int Success { get; set; }
[JsonProperty("result")]
public Result Result { get; set; }
}
var result = JsonConvert.DeserializeObject<Root>(json);
без доп. библиотек и массива битмапов
У кого правильно? Почему надо капсом писать? Во всех случаях?
if(ui is UI {leader: { IsValid: true, Owner: var leaderOwner}, b_leader_is_dead: false, } )
{
// делаем что-то с владельцем лидера
}
return transform.rotation;
Возвращаемый тип будет зависеть от того, что придёт в ответе от АПИ (несколько вариантов типов, которые будут явно указаны в самом методе).