Tag: 格式化

对混合数字和字符串进行排序

我有一个字符串列表,可以包含一个字母或一个int的字符串表示(最多2位数)。 它们需要按字母顺序排序,或者(当它实际上是一个int时)对它所代表的数值进行排序。 例: IList input = new List() {“a”, 1.ToString(), 2.ToString(), “b”, 10.ToString()}; input.OrderBy(s=>s) // 1 // 10 // 2 // a // b 我想要的是 // 1 // 2 // 10 // a // b 我有一些想法涉及通过尝试解析它来格式化它,然后如果它是一个成功的tryparse用我自己的自定义stringformatter格式化它使它有前面的零。 我希望能有更简单,更高效的东西。 编辑 我最终制作了一个IComparer,我把它放在我的Utils库中供以后使用。 当我在它的时候,我也在混合物中投掷了双打。 public class MixedNumbersAndStringsComparer : IComparer { public int Compare(string x, string y) { double xVal, […]

格式化跟踪输出

我正在使用TextWriterTraceListener将诊断消息记录到文本文件中。 但是,我也不想记录添加的每条跟踪消息的时间戳。 是否可以为侦听器定义一种自动添加时间戳的格式化程序? 目前我正在每次Trace.WriteLine()调用时手动添加时间戳,但这不是很舒服。

Winforms将TextBox格式化为货币

我是Winforms开发的新手,我将在文本框中向用户显示数据。 文本框将使用货币数据进行数据绑定,因此我尝试格式化正在显示的值。 我查看了一个蒙面文本框,但这并不是我想要的,因为它没有把小数点后的分数。 我是否需要为每个与此类似的文本框编码? TextBox.Text = DataSet.DataView[0].Amount.ToString(“c”); 我有很多需要格式化的文本框,所以我想知道是否需要为每个文本框执行此操作。 有没有人有什么建议?

如何格式化MVC3中TextBoxFor()显示的DateTime?

我安装了ASP.NET MVC3。 我需要带有格式化日期的datepicker。 我尝试了这个,但它不起作用(当传递“{0:dd / MM / yyyy}”作为格式参数时,它仍然没有格式化): private static MvcHtmlString FormattedDateTextBoxFor(this HtmlHelper htmlHelper, Expression<Func> expression, string format, RouteValueDictionary htmlAttributes) { var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); if (metadata.Model != null && metadata.Model as DateTime? != null) htmlAttributes.Add(“value”, string.Format(format, (DateTime)metadata.Model)); return htmlHelper.TextBoxFor(expression, htmlAttributes); } 编辑:如果格式为“{0:dd-MM-yyyy}”,我的代码可以工作,但不仅仅是“{0:dd / MM / yyyy}” 我知道MVC4已经有了这个function,但不幸的是我的项目是在MVC3上编写的。 你能帮助我吗?

在DataGridView列中格式化TimeSpan

我见过这些 问题,但都涉及CellStyle Format值中没有的方法。 我只想显示小时和分钟部分(16:05); 不是秒(16:05:13)。 我试图强制秒值为零,但仍然像16:05:00。 如果没有使用像提供字符串或DateTime(并且仅显示小时/分钟部分)的kludge,那么我可以通过任何方式获得格式化以完成我想要的操作。

hex的String.Format

使用下面的代码,着色总是给#DDDD。 绿色,红色和空间值如何解决这个问题? string colorstring; int Blue = 13; int Green = 0; int Red = 0; int Space = 14; colorstring = String.Format(“#{0:X}{0:X}{0:X}{0:X}”, Blue, Green, Red, Space);

如何格式化窗口表单文本框有千位分隔符和十进制separtor为数字输入

我是Winforms的新手,并尝试做点什么。 我正在使用C#。 我正在使用Windows窗体,我在表单上放了一个8文本框,所有都是带小数值的数字。 我想达到以下结果。 我的小数点分隔符是逗号,千位分隔符是一个点。 我见过像##。###,##或其他什么但不记得的东西……有人可以建议如何实现以下方法吗? 所以我的想法是当我输入1234并将焦点从文本框中保留时应格式化,当我再次进入文本框时,千位分隔符不应仅格式化小数分隔符。 我想我会使用像LostFocus这样的活动吗? 输入结果 1234 1.234,00 12.34 12,34 12,34 12,34 1234567 1.234.567,00 12,34 12,34 12345,67 12.345,67

使用.NET格式化大数字

我要求将4,316,000这样的大数字格式化为“4.3m”。 我怎么能在C#中做到这一点?

为什么只有一个语句的方法需要括号?

public void Finalise() ProcessFinalisation(true); 不编译,但正确的版本: public void Finalise() { ProcessFinalisation(true); } 编译好(当然)。 如果我被允许,如果没有括号,则以下代码只有一行: if(true) CallMethod(); 具有以下一行的方法为什么不允许相同? 有技术原因吗?

如何显示特定于文化的原生数字而不是阿拉伯数字?

我想将数值转换为字符串,显示特定于文化的数字。 例如,阿富汗使用的Dari语言(文化名称“prs-AF”)使用东方阿拉伯数字而不是大多数西方文化中使用的阿拉伯数字 ( 0,1,2,3,4,5,6,7,8,9 )。 在检查Framework内置的CultureInfo类时,它会列出正确的本机数字(从LinqPad的输出中截取): CultureInfo.CreateSpecificCulture(“prs-AF”).NumberFormat.NativeDigits 但是,当尝试将数字转换为字符串以在该文化中显示时,我没有获得原始数字: var number = 123.5; var culture = CultureInfo.CreateSpecificCulture(“prs-AF”); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; var text = number.ToString(culture); Console.WriteLine(text); 谁能告诉我如何显示原生数字?