在这里,我想在绑定数据库时计算总字符数,只显示 250 个字符,剩下的像 '....' 还有 631 个单词
通过使用后面的 c# 代码谢谢。
您可能会考虑使用新的扩展方法。下面的逻辑将保证您不会在中间切掉一个单词,并且除非字符串实际上被切掉,否则不会包含“更多单词”部分:
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);
您可以在查询中尝试
SELECT LEFT(ColumnName,250) + '...' + (DATALENGTH(ColumnName)-250) + ' more words' from TableName
要返回正确的“更多单词”,您需要使用它
var numWordsExcluded = words.Count() - initialText.Split(' ').Length;