public static IEnumerable<int> ExtensionMethod(this IEnumerable<int> list, int percentline)
{
try
{
if (list.Count() <= 100 && list.Count() >= 1)
{
IEnumerable<int> count = list.OrderByDescending(sort => sort).Take((int)(list.Count() * percentline / 100.0f));
Console.WriteLine("Перечень элементов: \n" + string.Join(", ", count));
}
else
{
throw new ArgumentException();
}
}
catch (ArgumentException)
{
Console.Write("ОШИБКА!!!\n");
}
return list;
}
var list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
list
.ExtensionMethod(10)
.ExtensionMethod(25);
using MassTransit;
using System;
namespace GreenPipes.DynamicInternal.MassTransit
{
public class MyFault<T> : Fault<T>
{
public T Message => throw new NotImplementedException();
public Guid FaultId => throw new NotImplementedException();
public Guid? FaultedMessageId => throw new NotImplementedException();
public DateTime Timestamp => throw new NotImplementedException();
public ExceptionInfo[] Exceptions => throw new NotImplementedException();
public HostInfo Host => throw new NotImplementedException();
public string[] FaultMessageTypes => throw new NotImplementedException();
}
public class Fault: MyFault<object>
{
}
public class Program
{
static void Main(string[] args)
{
var fault = new Fault();
string typename = fault.GetType().FullName; //GreenPipes.DynamicInternal.MassTransit.Fault
}
}
}
var str = "test12!#@<смайлик>";
var utf16bytes = Encoding.Unicode.GetBytes(str);
var utf16reversed = Encoding.Unicode.GetString(utf16bytes); #test12!#@<смайлик>
как я понимаю если я буду менять значения в Dictionary1 то они будут меняться и в 2 и 3 словарях?
но если я буду менять значения в 2 и 3 словарях они не будут затрагивать друг друга?
то есть меняя значения в 2 словаре это никак не отразится на 3 словарь, я правильно понимаю?
А то просто во недавно столкнулся с такой проблемой что присвоил один словарь другому Dictionary2 = Dictionary1 потом 1й очистил и 2й автоматом тоже оказался очищенным
private Dictionary<string, ClassTest> Dictionary1 // переменная Dictionary1 типа Dictionary<>
= new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=1]
private Dictionary<string, ClassTest> Dictionary2 // переменная Dictionary2 типа Dictionary<>
= new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=2]
private Dictionary<string, ClassTest> Dictionary3 // переменная Dictionary3 типа Dictionary<>
= new Dictionary<string, ClassTest>(); //которая ссылается на объект Dictionary [id=3]
//Dictionary1 -заполняем данными
Dictionary2 = Dictionary1; //переменная Dictionary2 теперь ссылается туда-же, куда и переменная Dictionary1,
// т.е на Dictionary [id=1]
Dictionary3 = Dictionary1; //переменная Dictionary3 теперь ссылается туда-же, куда и переменная Dictionary1,
// т.е на Dictionary [id=1]
// a объекты Dictionary [id=2] и Dictionary [id=3] будут собраны сборщиком мусора, т.к. они больше не нужны
а как мне сделать 2 словаря по типу 1го, то есть у меня есть 1й словарь шаблон, я хочу чтобы 2й и 3й словари изначально так же и выглядели (имели все те же данные), но далее данные в них менялись независимо друг от друга?
var dict1 = new Dictionary<int, int>()
{
[1] = 2,
};
var dict2 = new Dictionary<int, int>(dict1);
dict1.Add(2, 3);
dict2.Add(2, 1);
var log = new Action<Dictionary<int,int>>((dict) =>
{
Console.WriteLine(string.Join(", ", dict.Select(c => $"{c.Key}={c.Value}")));
});
log(dict1); //1=2, 2=3
log(dict2); //1=2, 2=1
var user = ("Bob", 37);
var str = user switch {
("Tom", 36) => "name: Tom, age: 36",
("Bob", 37) => "name: Bob, age: 37",
_ => "Undefined"
}
Console.Writeline(str);
var dict = new OrderedDictionary();
dict.Add("test1", 1);
dict.Add("test2", 2);
dict.Add("test3", 3);
var first = dict["test1"];
var second = dict[1];
Console.WriteLine(first); #1
Console.WriteLine(second); #2
public interface IClass {
void DoSomething();
}
public class Class1: IClass {
public void DoSomething() { ... }
}
public class Class2: Class1{
public void DoSomethingFaster() { ... }
}
...
public void InvokeWorker(IClass worker){
if (worker is Class2 class2Worker){
class2Worker.DoSomethingFaster()
}
else {
worker.DoSomething();
}
}
{
var k = 0;
{
var k = 5;
}
}
{
{
var k = 5;
}
var k = 0;
}
for (int a = 0; a < 3; a++)
{
Console.WriteLine(a);
}
{
int a = 3;
}
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS builder
COPY . .
WORKDIR /src
RUN dotnet restore "SolutionName.sln" && \
dotnet build "SolutionName.sln" -c Release -o /src/build && \
cd /path/to/proj && \
dotnet publish "ProjectToPublish.csproj" -c Release -o /src/publish
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS final
WORKDIR /app
COPY --from=publish /src/publish .
ENTRYPOINT ["dotnet", "ProjectName.dll"]
RUN dotnet restore ./build/ShoppingCart.API.csproj
RUN dotnet publish -c Release -o out
Command: help
Response: 214-The following commands are recognized:
Response: ABOR ADAT ALLO APPE AUTH CDUP CLNT CWD
Response: DELE EPRT EPSV FEAT HASH HELP LIST MDTM
Response: MFMT MKD MLSD MLST MODE NLST NOOP NOP
Response: OPTS PASS PASV PBSZ PORT PROT PWD QUIT
Response: REST RETR RMD RNFR RNTO SITE SIZE STOR
Response: STRU SYST TYPE USER XCUP XCWD XMKD XPWD
Response: XRMD
Response: 214 Have a nice day.
SITE CHMOD 777 FILENAME
, остальные варианты - шаг в сторону от стандарта