我想在引导卡组件中显示有限的单词,但是它不会在C#中使用Substring()
在适当的位置修剪/截断单词。
这是我的代码:
LimitedWord = _postRepo.GetNumberOfWord(posts.Description, 200, "")
存储库中逻辑的实现
public string GetNumberOfWord(string description, int length, string delimiter)
{
if (string.IsNullOrWhiteSpace(delimiter))
{
return description.Substring(0, length);
}
else
{
return description.Substring(0, description.LastIndexOf(delimiter));
}
}
答案 0 :(得分:3)
只需使用CSS
div {
padding: 15px;
clear: both;
margin-bottom: 20px;
width: 300px;
line-height: 1.2em;
}
.post-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<div class="post-title">
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>
答案 1 :(得分:0)
您可以使用以下类似方法来获取n
的前description
个单词:
string.Join(" ", description.Split().Take(n))
您期望description
待多久?如果该字符串可能真的很长,那么可能会觉得有一个附加的数据库列,其中包含简短的说明。
答案 2 :(得分:0)
以上步骤均未解决问题,但是我改变了存储库中的逻辑,并且顺便说一句,这似乎完全符合我的要求,谢谢您的帮助:-
public string GetNumberOfWord(string description, int length)
{
var biggestWord = 50;
var elipse = "[...]";
if (description == "undefined")
{
return description;
}
var truncatedText = description.Substring(0, length + biggestWord);
while(truncatedText.Length > length - elipse.Length)
{
var lastSpace = truncatedText.LastIndexOf(" ");
if(lastSpace == -1)
{
break;
}
truncatedText = truncatedText.Substring(0, lastSpace).Replace("/[!,.?]$/","");
}
return truncatedText + elipse;
}