如何在已格式化的字符串上添加文本换行或字符限制
How to add text wrapping or char limit on an already formatted string
我写了一些 c# 代码,它接受一个 csv 文件并显示在控制台中,我使用 string.format 来对齐我的标题和我的列数据,但是我在列中有一个数据字符串它的字符比其他字符长得多,导致对齐问题。有人可以让我知道我是否可以换行或在名为 "boat name"
的列中添加字符限制
我曾尝试将 DisplayMembers() 的当前 string.Format 放入变量中并向其添加限制 (0, 12),但失败了。
public static void DisplayHeadings()
{
Console.WriteLine(string.Format("{0,-4} {1,-7} {2,-10} {3,-8} {4,-20} {5,-8} {6,-10} {7,-6} {8,-6} {9, -9} {10, -5}"
, "Pos", "BoatID", "Waterway", "Reg No", "Boat Name", "Length", "Homewater", "Beam", "Year", "Prop Pwr", "Prop"));
}
//string limit5 = "The quick brown fox jumped over the lazy dog.".LimitLength(5);
public static void DisplayMembers()
{
position = 1;
foreach (var boat in boats)
{
Console.WriteLine(string.Format("{0,-4} {1,-7} {2,-10} {3,-8} {4,-20} {5,-8} {6,-10} {7,-6} {8,-6} {9, -9} {10, -5}",
position,
boat.BoatId,
boat.Waterway,
boat.RegNo,
boat.BoatName,
boat.BoatLength,
boat.HomeWaterway,
boat.BoatBeam,
boat.Year,
boat.PropulsionPower,
boat.Propulsion));
position++;
// 这一切都按照我的意愿工作和对齐,但是 boat.BoatName 有一个记录大约 30 个字符,而其他记录大约 10-12 个字符。
将 boat.BoatName 上的字符限制为大约 15 个字符
您可以使用以下扩展来限制 BoatName 字符串。
public static class StringExts
{
public static string CutStringIfNeeded(this string value, int maxCount)
{
return (!string.IsNullOrWhiteSpace(value) && value.Length >= maxCount)
? value.Substring(0, maxCount - 1)
: value;
}
}
用法:
// returns the limited string or original one if less than 15 chars.
boat.BoatName.CutStringIfNeeded(15);
我写了一些 c# 代码,它接受一个 csv 文件并显示在控制台中,我使用 string.format 来对齐我的标题和我的列数据,但是我在列中有一个数据字符串它的字符比其他字符长得多,导致对齐问题。有人可以让我知道我是否可以换行或在名为 "boat name"
的列中添加字符限制我曾尝试将 DisplayMembers() 的当前 string.Format 放入变量中并向其添加限制 (0, 12),但失败了。
public static void DisplayHeadings()
{
Console.WriteLine(string.Format("{0,-4} {1,-7} {2,-10} {3,-8} {4,-20} {5,-8} {6,-10} {7,-6} {8,-6} {9, -9} {10, -5}"
, "Pos", "BoatID", "Waterway", "Reg No", "Boat Name", "Length", "Homewater", "Beam", "Year", "Prop Pwr", "Prop"));
}
//string limit5 = "The quick brown fox jumped over the lazy dog.".LimitLength(5);
public static void DisplayMembers()
{
position = 1;
foreach (var boat in boats)
{
Console.WriteLine(string.Format("{0,-4} {1,-7} {2,-10} {3,-8} {4,-20} {5,-8} {6,-10} {7,-6} {8,-6} {9, -9} {10, -5}",
position,
boat.BoatId,
boat.Waterway,
boat.RegNo,
boat.BoatName,
boat.BoatLength,
boat.HomeWaterway,
boat.BoatBeam,
boat.Year,
boat.PropulsionPower,
boat.Propulsion));
position++;
// 这一切都按照我的意愿工作和对齐,但是 boat.BoatName 有一个记录大约 30 个字符,而其他记录大约 10-12 个字符。
将 boat.BoatName 上的字符限制为大约 15 个字符
您可以使用以下扩展来限制 BoatName 字符串。
public static class StringExts
{
public static string CutStringIfNeeded(this string value, int maxCount)
{
return (!string.IsNullOrWhiteSpace(value) && value.Length >= maxCount)
? value.Substring(0, maxCount - 1)
: value;
}
}
用法:
// returns the limited string or original one if less than 15 chars.
boat.BoatName.CutStringIfNeeded(15);