本文整理汇总了C#中System.UInt32.Distinct方法的典型用法代码示例。如果您正苦于以下问题:C# UInt32.Distinct方法的具体用法?C# UInt32.Distinct怎么用?C# UInt32.Distinct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.UInt32
的用法示例。
在下文中一共展示了UInt32.Distinct方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: foreach
//.........这里部分代码省略.........
{
var target_blood_list = new List< Pedigree.Node >();
// ラインブリード対象になる血統を取得
foreach( var pedigree in new []{ this.SirePedigree, this.DamPedigree } ) {
foreach( var node in pedigree.NodeList(2) ) {
if( node.Type == Enums.血統タイプ.父系 ) {
target_blood_list.Add( node );
}
}
}
Debug.Assert( target_blood_list.Count == 4 );
HBloodData
blood1 = new HBloodData(),
blood2 = new HBloodData(),
blood3 = new HBloodData(),
blood4 = new HBloodData();
this.wp.HBloodTable.GetData( target_blood_list[0].BloodNum, ref blood1 );
this.wp.HBloodTable.GetData( target_blood_list[1].BloodNum, ref blood2 );
this.wp.HBloodTable.GetData( target_blood_list[2].BloodNum, ref blood3 );
this.wp.HBloodTable.GetData( target_blood_list[3].BloodNum, ref blood4 );
FamilyLineInfo
child_line1 = this.family_line_info[ blood1.family_line_num ],
child_line2 = this.family_line_info[ blood2.family_line_num ],
child_line3 = this.family_line_info[ blood3.family_line_num ],
child_line4 = this.family_line_info[ blood4.family_line_num ];
// 出現率の1番多い親系統の数を数える
var parent_line_match_count = 1;
var info_ary = new []{ child_line1, child_line2, child_line3, child_line4, };
for( var i=0; i<info_ary.Length; ++i ) {
var temp = 1;
for( var j=0; j<info_ary.Length; ++j ) {
if( i != j && info_ary[i].ParentFamilyLuneNum == info_ary[j].ParentFamilyLuneNum ) {
temp++;
}
}
if( temp > parent_line_match_count ) {
parent_line_match_count = temp;
}
}
// 親系統ラインブリード爆発型のチェック
if( parent_line_match_count >= 3 ) {
// 子系統の種類を数える
var child_num_ary = new UInt32[]{
blood1.family_line_num,
blood2.family_line_num,
blood3.family_line_num,
blood4.family_line_num,
};
// 重複カット
child_num_ary = child_num_ary.Distinct().ToArray();
if( parent_line_match_count == 4 && child_num_ary.Length == 4 ) {
if( child_line1.Data.family_line_attr == 1 ) {
this.Combination.ラインブリード = Enums.ラインブリード.親系統4本爆発SP型;
} else {
this.Combination.ラインブリード = Enums.ラインブリード.親系統4本爆発型;
}
return;
}
if( parent_line_match_count == 3 && child_num_ary.Length == 4 ) {
if( child_line1.Data.family_line_attr == 1 ) {
this.Combination.ラインブリード = Enums.ラインブリード.親系統3本爆発SP型;
} else {
this.Combination.ラインブリード = Enums.ラインブリード.親系統3本爆発型;
}
return;
}
}
var father_family_line = this.family_line_info[ this.SirePedigree.Tree.Data.family_line_num ];
var mother_family_line = this.family_line_info[ this.DamPedigree.Tree.Data.family_line_num ];
// 子系統ラインブリードのチェック
if( this.SirePedigree.Tree.Data.family_line_num == this.DamPedigree.Tree.Data.family_line_num ) {
if( father_family_line.Data.family_line_attr == 1 ) {
this.Combination.ラインブリード = Enums.ラインブリード.子系統SP型;
} else {
this.Combination.ラインブリード = Enums.ラインブリード.子系統;
}
return;
}
// 親系統ラインブリードのチェック
// 資料とは少し違う
if( father_family_line.ParentFamilyLuneNum == mother_family_line.ParentFamilyLuneNum ) {
if( father_family_line.Data.family_line_attr == 1 && mother_family_line.Data.family_line_attr == 1 ) {
this.Combination.ラインブリード = Enums.ラインブリード.親系統SP型;
} else {
this.Combination.ラインブリード = Enums.ラインブリード.親系統;
}
return;
}
}