0

在这里,我想在绑定数据库时计算总字符数,只显示 250 个字符,剩下的像 '....' 还有 631 个单词

通过使用后面的 c# 代码谢谢。

4

3 回答 3

1

您可能会考虑使用新的扩展方法。下面的逻辑将保证您不会在中间切掉一个单词,并且除非字符串实际上被切掉,否则不会包含“更多单词”部分:

public static class Extensions
{
    public static string ToCutOffString(this string text, int maxLength)
    {
        var totalChars = 0;
        var words = text.Split(' ');
        var wordsToInclude = words.Where(word => (totalChars += word.Count()) < maxLength).ToList();
        var initialText = string.Join(" ", wordsToInclude);
        var numWordsExcluded = words.Count() - wordsToInclude.Count();
        var format = numWordsExcluded == 0 
                       ? "{0}" : "{0}... {1} more word" 
                       + (numWordsExcluded > 1 ? "s" : "");
        return string.Format(format, initialText, numWordsExcluded);
    }
}

然后你可以像这样使用它:

"very long string with many words".ToCutOffString(25);
于 2013-06-24T13:18:44.413 回答
0

您可以在查询中尝试

SELECT LEFT(ColumnName,250) + '...' + (DATALENGTH(ColumnName)-250) + ' more words' from TableName 
于 2013-06-24T13:25:15.533 回答
0

要返回正确的“更多单词”,您需要使用它

 var numWordsExcluded = words.Count() - initialText.Split(' ').Length;
于 2013-06-24T14:13:05.717 回答