Ini pachangu, ndinongoda kukupa zviyero zvangu nemhedzisiro; Ini ndakawedzera reverse loops kwavari kune vanoda "C ++ maitiro" ekunyora zvishwe.
Code:
public class Bench
{
private List<int> _list;
private int[] _array;
[Params(100000, 10000000)] public int N;
[GlobalSetup]
public void Setup()
{
const int MIN = 1;
const int MAX = 10;
Random random = new Random();
_list = Enumerable.Repeat(0, N).Select(i => random.Next(MIN, MAX)).ToList();
_array = _list.ToArray();
}
[Benchmark]
public int ForList()
{
int total = 0;
for (int i = 0; i < _list.Count; i++)
{
total += _list[i];
}
return total;
}
[Benchmark]
public int ForListFromEnd()
{
int total = 0;t
for (int i = _list.Count-1; i > 0; i--)
{
total += _list[i];
}
return total;
}
[Benchmark]
public int ForeachList()
{
int total = 0;
foreach (int i in _list)
{
total += i;
}
return total;
}
[Benchmark]
public int ForeachArray()
{
int total = 0;
foreach (int i in _array)
{
total += i;
}
return total;
}
[Benchmark]
public int ForArray()
{
int total = 0;
for (int i = 0; i < _array.Length; i++)
{
total += _array[i];
}
return total;
}
[Benchmark]
public int ForArrayFromEnd()
{
int total = 0;
for (int i = _array.Length-1; i > 0; i--)
{
total += _array[i];
}
return total;
}
}
Tinogona kugumisa kuti kudzokororwa kweArray kuunganidzwa kunokurumidza nekuda kwekugadzirisa kwayo kwemukati uye kugovaniswa kwehukuru hwekuunganidza. Zvakakoshawo kuyeuka kuti Rondedzero yekuunganidza ine zvayakanakira uye iwe unofanirwa kushandisa muunganidzwa chaiwo zvichienderana nekuverenga kunodiwa. Kunyangwe iwe ukanyora zvine musoro zvekushanda nezvishwe, usakanganwe kuti iyi yakajairika loop uye zvakare iri pasi pekugona loop optimization. Chinyorwa chakaburitswa pa habr nguva refu yapfuura: https://habr.com/ru/post/124910/. Ichiri kushanda uye inokurudzirwa kuverenga.
Kanda
Gore rapfuura, ndakashanda pane imwe kambani pane purojekiti yenhaka, mupurojekiti iyoyo zvaive zvakajairika kugadzirisa kusimbiswa kwemunda kuburikidza nekuedza-kubata-kukanda kuvaka. Ini ndatonzwisisa ipapo kuti iyi yaive isina hutano bhizinesi logic yepurojekiti, saka pese pazvaibvira ndaiedza kusashandisa dhizaini yakadai. Asi ngationei kuti sei nzira yekubata zvikanganiso nekuvakwa kwakadaro kwakaipa. Ndakanyora kodhi diki kuenzanisa nzira mbiri uye ndakagadzira mabhenji kune yega yega sarudzo.
Code:
public bool ContainsHash()
{
bool result = false;
foreach (var file in _files)
{
var extension = Path.GetExtension(file);
if (_hash.Contains(extension))
result = true;
}
return result;
}
public bool ContainsHashTryCatch()
{
bool result = false;
try
{
foreach (var file in _files)
{
var extension = Path.GetExtension(file);
if (_hash.Contains(extension))
result = true;
}
if(!result)
throw new Exception("false");
}
catch (Exception e)
{
result = false;
}
return result;
}
Kukanda kunze kunononoka pane imwe kirasi inounganidza kukanganisa mufomati inodiwa. Kana iwe uri kugadzirisa fomu kana imwe data uye iwe unonyatsoziva kuti chii chikanganiso chinofanira kunge chiri, wadii kuchigadzirisa?
Iwe haufanirwe kunyora kukanda nyowani Exception() kuvaka kana mamiriro aya asiri akasiyana. Kubata uye kukanda zvakasarudzika kunodhura zvakanyanya !!!