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


C# Ship.SelectMany方法代码示例

本文整理汇总了C#中Ship.SelectMany方法的典型用法代码示例。如果您正苦于以下问题:C# Ship.SelectMany方法的具体用法?C# Ship.SelectMany怎么用?C# Ship.SelectMany使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Ship的用法示例。


在下文中一共展示了Ship.SelectMany方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Calc

		public override double Calc(Ship[] ships)
		{
			if (ships == null || ships.Length == 0) return 0;

			// http://wikiwiki.jp/kancolle/?%C6%EE%C0%BE%BD%F4%C5%E7%B3%A4%B0%E8#search-calc
			// > 2-5式では説明出来ない事象を解決するため膨大な検証報告数より導き出した新式。2014年11月に改良され精度があがった。
			// > 索敵スコア
			// > = 艦上爆撃機 × (1.04) 
			// > + 艦上攻撃機 × (1.37)
			// > + 艦上偵察機 × (1.66)
			// > + 水上偵察機 × (2.00)
			// > + 水上爆撃機 × (1.78)
			// > + 小型電探 × (1.00)
			// > + 大型電探 × (.99)
			// > + 探照灯 × (0.91)
			// > + √(各艦毎の素索敵) × (1.69)
			// > + (司令部レベルを5の倍数に切り上げ) × (-0.61)

			var itemScore = ships
				.SelectMany(x => x.EquippedItems)
				.Select(x => x.Item.Info)
				.GroupBy(
					x => x.Type,
					x => x.RawData.api_saku,
					(type, scores) => new { type, score = scores.Sum() })
				.Aggregate(.0, (score, item) => score + GetScore(item.type, item.score));

			var shipScore = ships
				.Select(x => x.ViewRange - x.EquippedItems.Sum(s => s.Item.Info.RawData.api_saku))
				.Select(x => Math.Sqrt(x))
				.Sum() * 1.69;

			var level = (((KanColleClient.Current.Homeport.Admiral.Level + 4) / 5) * 5);
			var admiralScore = level * -0.61;

			return itemScore + shipScore + admiralScore;
		}
开发者ID:hilapon,项目名称:KanColleViewer,代码行数:37,代码来源:ViewRange.cs

示例2: Calc

        public override double Calc(Ship[] ships)
        {
            if (ships == null || ships.Length == 0) return 0;

            // http://wikiwiki.jp/kancolle/?%C6%EE%C0%BE%BD%F4%C5%E7%B3%A4%B0%E8#area5
            // 2-5 詳細2

            var itemScore = ships
                .SelectMany(x => x.EquippedSlots)
                .Select(x => x.Item.Info)
                .GroupBy(
                    x => x.Type,
                    x => x.RawData.api_saku,
                    (type, scores) => new { type, score = scores.Sum() })
                .Aggregate(.0, (score, item) => score + GetScore(item.type, item.score));

            var shipScore = ships
                .Select(x => x.ViewRange - x.EquippedSlots.Sum(s => s.Item.Info.RawData.api_saku))
                .Select(x => Math.Sqrt(x))
                .Sum();

            //var level = (((KanColleClient.Current.Homeport.Admiral.Level + 4) / 5) * 5);
            var admiralScore = KanColleClient.Current.Homeport.Admiral.Level * -0.36;

            return itemScore + shipScore + admiralScore;
        }
开发者ID:Sinwee,项目名称:KanColleViewer,代码行数:26,代码来源:ViewRange.cs


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