????????
????Tuple?????????????????小? ???????????写??????????????????????????????????????????????????????? ????????些?????Tuple ??????C????Tuple ???????????????????????????????????????
?????????????????????????????????????????????些??娲�??????????胁?????眉???? ???????????????????????????????????C?? ?????些????????? Class / Struct??????????? Tuple??
????????????????????? ??????????????????????????????????????????????小??????? ???????????????????????小???????????? ????????????????????????Class / Struct??????????? Tuple??  ?????????????????????????????????????????
??????? out ????
??????????????????????????????????械?????小??? ?梅?????????????????????小??????? ????????????????????? out ?????????????????? ?????????????械???????? out ????????????械?小????
??????????????????? Operation ??????????????????????胁???小???????????????????????????霉????
using System.Collections.Generic;
namespace TupleApp
{
class Operation
{
internal int FindMinMax(List<int> list?? out int min)
{
int maximum = int.MinValue?? minimum = int.MaxValue;
list.ForEach(n =>
{
minimum = n < minimum ? n : minimum;
maximum = n > maximum ? n : maximum;
});
min = minimum;
return maximum;
}
}
}
??????????????????危??梅?????????????????????????? maximum ?????伪????? ????????械????? ??????????????????? min ????????貌??????????????械?小???
???????????????????????未????谐????????????
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
namespace TupleApp
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = Enumerable.Range(1?? 100).OrderBy(x => Guid.NewGuid()).Take(10).ToList();
int minimum = 0?? maximum = 0;
Operation operation = new Operation();
maximum = operation.FindMinMax(numbers?? out minimum);
Write($"{minimum} is min and {maximum} is max in {String.Join("??"?? numbers)}");
Read();
}
}
}
???????????????贸??? ?????????????


????
?1?????

???????????????????? out ?????????????????????
??????? Class/Struct
??????????????????????????????????–??????????懈?????????????濉� ???????????????????????? ????????????? CalculateData ????澹�??????????????????????????????械?????小??? ???鈥�????????????????????濉�
namespace TupleApp
{
struct CalculateData
{
public int Minimum { get; set; }
public int Maximum { get; set; }
}
}
?????????????????????????? Operation ???????????????????????胁???小???????????? ???鈥�?????????????????????
using System.Collections.Generic;
namespace TupleApp
{
class Operation
{
internal CalculateData FindMinMax(List<int> list)
{
int maximum = int.MinValue?? minimum = int.MaxValue;
list.ForEach(n =>
{
minimum = n < minimum ? n : minimum;
maximum = n > maximum ? n : maximum;
});
CalculateData data = new CalculateData
{
Minimum = minimum??
Maximum = maximum
};
return data;
}
}
}
??????????????????危??梅?????????????????????????? ??些???????????????械?????小???
??????????????谐??????????????????????????????
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
namespace TupleApp
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = Enumerable.Range(1?? 100).OrderBy(x => Guid.NewGuid()).Take(10).ToList();
Operation operation = new Operation();
CalculateData data = operation.FindMinMax(numbers);
Write($"{data.Minimum} is min and {data.Maximum} is max in {String.Join("??"?? numbers)}");
Read();
}
}
}
???????????????贸??? ??????????????


????
?2: ??????

??????? Tuple
????C??7 ??????????????路????? Tuple ??????????????????????? ?????????????????????? ?????贸???????? Tuple???????????? System.ValueTuple NuGet ??.


????
?3 NuGet ??

???????????????????????????? ??????????????? Operation ??????????????????????胁???小????????????? ???鈥�???????????霉????
using System.Collections.Generic;
namespace TupleApp
{
class Operation
{
internal (int?? int) FindMinMax(List<int> list)
{
int maximum = int.MinValue?? minimum = int.MaxValue;
list.ForEach(n =>
{
minimum = n < minimum ? n : minimum;
maximum = n > maximum ? n : maximum;
});
return (minimum?? maximum);
}
}
}
??????????????????危??梅???????????????????????椤� ??些?????????????械?????小???
?????????????????????????????谐???????????????
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
namespace TupleApp
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = Enumerable.Range(1?? 100).OrderBy(x => Guid.NewGuid()).Take(10).ToList();
Operation operation = new Operation();
(int?? int) data = operation.FindMinMax(numbers);
Write($"{data.Item1} is min and {data.Item2} is max from {String.Join("??"?? numbers)}");
Read();
}
}
}
??????????????????危???? FindMinMax ????????貌??????????椤� ???????????????????? Tuple ??????????????????????????些???????????????????????????????????????????????些??????? Item1 ?? Item2?? Item1 ????????????? Item2 ?????????????? Tupple ????????????????????
???????????????贸??? ??????????????


?4 ??????

???????? Item1 ?? Item2 ???????蔚?????????????????????????????????? ?????????????????????????????????????????? Item1 ?? Item2??
????????????? Operation ??????? FindMinMax ?????蟹????? ???????些?????畏????????????? ???鈥�???????????霉????
using System.Collections.Generic;
namespace TupleApp
{
class Operation
{
internal (int Minimum?? int Maximum) FindMinMax(List<int> list)
{
int maximum = int.MinValue?? minimum = int.MaxValue;
list.ForEach(n =>
{
minimum = n < minimum ? n : minimum;
maximum = n > maximum ? n : maximum;
});
return (minimum?? maximum);
}
}
}
???????????????????????? Minimum??????????????? Maximum??
???????????????????????未????谐????????????
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
namespace TupleApp
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = Enumerable.Range(1?? 100).OrderBy(x => Guid.NewGuid()).Take(10).ToList();
Operation operation = new Operation();
var data = operation.FindMinMax(numbers);
Write($"{data.Minimum} is min and {data.Maximum} is max from {String.Join("??"?? numbers)}");
Read();
}
}
}
??????? FindMinMax ????????貌??????????椤� ?????????????????????????????????小???????
???????????????贸??????????


????
?5 ??????

????????
????Tuple ?????????????????小? ???????????????????????????????Tuple ?????????????????Tuple ?写????? 8 ???????? ?????????????????懈?????? Tuple??????????????? Tuple?? Tuple ???????????????? Tuple??