在文本框中输入各种数据类型,并输入到一个Object数组中
Enter various data types in a text box and input them into an Object array
在文本框中输入各种数据类型,并输入到Object数组中
我想要一种能够让用户将各种数据类型键入 TextBox 的方法,例如:
“a”, 1, 1.5, “b”
然后用“,”分割成一个对象数组或列表。与此类似的东西,除了对象之外,所以我无法将它们识别为字符串、整数等。
String sample = textbox;
String samples = sample.Split(new Char[] {','});
foreach (var x in samples)
谢谢
这是一个两步过程。第 1 步是解析来自用户的 CSV 行,第 2 步是识别数字(我选择双精度)与纯文本。我更喜欢正则表达式,因为它们的灵活性(一旦学会)并且相信这两个步骤都可以使用正则表达式来解决。
如果您进行搜索,就会发现关于识别数字主题的整个 Whosebug 问题。您的要求似乎是一个基本要求,基于这种理解,我将使用正则表达式提供基本的数字与文本检查。 (注意它可以扩展到进一步限制可能性):
List<object> items = new List<object>();
string data = "a, 1, 1.5, b";
Regex.Matches(data, "[^,]+") // Get each object without a comma over the line.
.OfType<Match>()
.Select (mt => mt.ToString().Trim()) // Remove any whitespace (if any)
.ToList()
.ForEach(itm => items.Add(Regex.IsMatch(itm, "[a-zA-Z]") ? // Is it
(object) itm : // a string
(object) Double.Parse(itm))); // a number
Console.WriteLine ( string.Join( " | ", items.Select (obj => obj.ToString())));
// Writes:
// a | 1 | 1.5 | b
Console.WriteLine ( string.Join( ", ", items.Select (obj => obj.GetType())));
// Writes:
// System.String, System.Double, System.Double, System.String
在文本框中输入各种数据类型,并输入到Object数组中
我想要一种能够让用户将各种数据类型键入 TextBox 的方法,例如:
“a”, 1, 1.5, “b”
然后用“,”分割成一个对象数组或列表。与此类似的东西,除了对象之外,所以我无法将它们识别为字符串、整数等。
String sample = textbox;
String samples = sample.Split(new Char[] {','});
foreach (var x in samples)
谢谢
这是一个两步过程。第 1 步是解析来自用户的 CSV 行,第 2 步是识别数字(我选择双精度)与纯文本。我更喜欢正则表达式,因为它们的灵活性(一旦学会)并且相信这两个步骤都可以使用正则表达式来解决。
如果您进行搜索,就会发现关于识别数字主题的整个 Whosebug 问题。您的要求似乎是一个基本要求,基于这种理解,我将使用正则表达式提供基本的数字与文本检查。 (注意它可以扩展到进一步限制可能性):
List<object> items = new List<object>();
string data = "a, 1, 1.5, b";
Regex.Matches(data, "[^,]+") // Get each object without a comma over the line.
.OfType<Match>()
.Select (mt => mt.ToString().Trim()) // Remove any whitespace (if any)
.ToList()
.ForEach(itm => items.Add(Regex.IsMatch(itm, "[a-zA-Z]") ? // Is it
(object) itm : // a string
(object) Double.Parse(itm))); // a number
Console.WriteLine ( string.Join( " | ", items.Select (obj => obj.ToString())));
// Writes:
// a | 1 | 1.5 | b
Console.WriteLine ( string.Join( ", ", items.Select (obj => obj.GetType())));
// Writes:
// System.String, System.Double, System.Double, System.String