2. Не избыточна ли тут ConcurrentQueue?
3. Как сообщить основному потоку из Task.run() что все готово к обновлению карт? Я понимаю что есть Task.Result, но если Task выполняется постоянно (while true), смогу ли я это использовать?
var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var targetPath = Path.Combine(desktop, "sus(42).jpg");
File.Copy(@"./Resources/peele.jpg", targetPath);
var x = 42;
var xType = x.GetType();
Console.WriteLine(xType.Name); // Int32
LastSurvivor ("123", new [] {3});
public string? Top => _elements.LastOrDefault(); // Обычный метод Last кидает исключение, если коллекция пустая
string? top = null;
try {
top = s.Top;
catch {}
Console.WriteLine($"Количество элементов в стеке: <{s.Size}>, верхний элемент стека: <{(top == null ? "null" : top)}>");
s.Top is {} t ? t : "null"
;var msg = s switch {
{ Size: 0 } => $"Стек пуст",
{ Size: var size, Top: var top} => $"Количество элементов в стеке: <{size}>, верхний элемент стека: <{top}>"
};
Console.WriteLine(msg);
Как вы понимаете основной трабл в листе (можно заменить на массив)
var obj = new TestObject { SomeField = "asd" };
JsonSerializer.Serialize(obj, new JsonSerializerOptions() { IncludeFields = true });
public class Test
{
public Test(params string[] elements) {
foreach(var element in elements)
AddElement(element);
}
private List<string> _elements = new List<string>();
public void AddElement(string x)
{
string AddElement = x;
_elements.Add(AddElement);
Console.WriteLine($"Элемент <{AddElement}> добавлен.");
Console.WriteLine($"Стэк: {String.Join("; ", _elements)}");
Console.WriteLine();
}
}
var x = new Test("a", "b", "c");
public class Test
{
private List<string> _elements = new List<string>();
// Для Collection Initializer нужен публичный метод Add
public void Add(string element) => AddElement(element);
public void AddElement(string x)
{
string AddElement = x;
_elements.Add(AddElement);
Console.WriteLine($"Элемент <{AddElement}> добавлен.");
Console.WriteLine($"Стэк: {String.Join("; ", _elements)}");
Console.WriteLine();
}
}
var x = new Test { "a", "b", "c" };