当前位置: 首页>>代码示例>>C#>>正文


C# UInt32.Distinct方法代码示例

本文整理汇总了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;
            }
        }
开发者ID:hinovana,项目名称:libwp7n2012,代码行数:101,代码来源:Breeding.cs


注:本文中的System.UInt32.Distinct方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。