c#使用String格式将字符串读入对象

本文关键字:对象 字符串 使用 String 格式 | 更新日期: 2023-09-27 18:07:10

我用

创建了一个字符串
String.Format(IPAddressRangeFormat, StartIP, EndIP);

现在我需要将字符串读入StartIP和EndIP对象。

在c#中这样做最简单的方法是什么?

谢谢,李。

c#使用String格式将字符串读入对象

作为String的反面,没有简单的方法可以做到这一点。格式不确定。

同时

:

String.Format( "{0}{1}", "123", "456" )
String.Format( "{0}{1}", "12", "3456" )

给出123456。机器不会猜出你想要哪个。

然而,有一个更棘手的方法来做到这一点,你有正则表达式。

如果你有:

String.Format ( "{0}-{1}",  StartIP, EndIP);

你可以使用一个表达式:

var matches = Regex.Match ( String.Format ( "{0}-{1}",  "127.0.0.1", "192.168.0.1"), "(?<startIP>.*)-(?<endIP>.*)" );
Console.WriteLine ( matches.Groups["startIP"].Value ); // 127.0.0.1
Console.WriteLine ( matches.Groups["endIP"].Value );   // 192.168.0.1

可能是拥有像IPRange这样的独立类型的最好方法,您将在构造函数中拥有2个IP并覆盖ToString()。解析后,您可能需要实现自定义逻辑,例如静态Parse(string)成员。

您想要做的事情称为解析,它不能由String执行。格式方法。

根据IPAddressRangeFormat的格式,使用ToString()…然后是string.Split(':')…用您正在使用的char替换':'。

我真的需要看到你的IPAddressRangeFormat格式,以提供一个更好的答案。