本文整理汇总了C#中IRule.FirstOrDefault方法的典型用法代码示例。如果您正苦于以下问题:C# IRule.FirstOrDefault方法的具体用法?C# IRule.FirstOrDefault怎么用?C# IRule.FirstOrDefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRule
的用法示例。
在下文中一共展示了IRule.FirstOrDefault方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Start
public void Start()
{
var rules = new IRule[] { new FizzBuzzRule(), new FizzRule(), new BuzzRule() };
Enumerable.Range(1, 100).ToList().ForEach(number =>
{
var rule = rules.FirstOrDefault(x => x.Applies(number));
if (rule == null)
Console.WriteLine(number);
else
rule.Print();
});
}
示例2: ToArabic
public int ToArabic(string numeral)
{
var rules = new IRule[] {new IRules(), new VRules(), new XRules() };
var numbers = new Queue<int>();
foreach (var letter in numeral.ToCharArray())
{
var rule = rules.FirstOrDefault(x => x.CanHandle(letter));
if (rule != null)
{
numbers.Enqueue(rule.GetNumber());
}
else
{
throw new NotImplementedException();
}
}
var total = 0;
while (numbers.Any())
{
var number = numbers.Dequeue();
if (numbers.Any() && numbers.Peek() > number)
{
var nextNumber = numbers.Dequeue();
total += (nextNumber - number);
}
else
{
total += number;
}
}
return total;
}