在文本框中输入各种数据类型,并将它们输入到Object数组
我想要一种能够让用户在TextBox中键入各种数据类型的方法,例如:
“a”, 1, 1.5, “b”
然后将它们拆分为“,”并将它们放入Object数组或列表中。类似于此的东西,除了对象,所以我能够将它们识别为字符串,int等。
String sample = textbox;
String samples = sample.Split(new Char[] {','});
foreach (var x in samples)
谢谢
答案 0 :(得分:0)
这是一个两步过程。第1步是解析用户的CSV行,第2步是识别一个数字(我选择双倍)和直接文本。我更喜欢正则表达式,因为它们具有灵活性(一旦学会了),并且相信这两个步骤都可以使用正则表达式来解决。
如果您进行搜索,则会有关于识别数字主题的整个StackOverflow问题。您的要求似乎是基本要求,并且根据该理解,我将使用正则表达式提供基本数字和文本检查。 (注意它可以扩展到进一步限制可能性):
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