本文整理汇总了C#中ArraySegment.Last方法的典型用法代码示例。如果您正苦于以下问题:C# ArraySegment.Last方法的具体用法?C# ArraySegment.Last怎么用?C# ArraySegment.Last使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArraySegment
的用法示例。
在下文中一共展示了ArraySegment.Last方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateTerms
/// <summary>
/// Generate regular expressions to match word sequences in original string.
/// </summary>
/// <param name="phrase">Original string to be processed.</param>
/// <param name="maxLength">Maximum phrase length to support.</param>
/// <returns>Array of regular expressions to match subsequences in input.</returns>
/// <remarks>
/// This function will call <see cref="CamelCase(string)"/> and then will generate sub-phrases up to maxLength.
/// For example an enumeration of AngusBeefAndGarlicPizza would generate: 'angus?', 'beefs?', 'garlics?', 'pizzas?', 'angus? beefs?', 'garlics? pizzas?' and 'angus beef and garlic pizza'.
/// You can call it directly, or it is used when <see cref="FieldReflector{T}"/> generates terms or when <see cref="TermsAttribute"/> is used with a <see cref="TermsAttribute.MaxPhrase"/> argument.
/// </remarks>
public static string[] GenerateTerms(string phrase, int maxLength)
{
var words = (from word in phrase.Split(' ') where word.Length > 0 select word.ToLower()).ToArray();
var terms = new List<string>();
for (var length = 1; length <= Math.Min(words.Length, maxLength); ++length)
{
for (var start = 0; start <= words.Length - length; ++start)
{
var ngram = new ArraySegment<string>(words, start, length);
if (!ArticleOrNone(ngram.First()) && !ArticleOrNone(ngram.Last()))
{
terms.Add(string.Join(" ", OptionalPlurals(ngram)));
}
}
}
if (words.Length > maxLength)
{
terms.Add(string.Join(" ", words));
}
return terms.ToArray();
}