将制表符分隔的剪贴板数据存储到C#中的对象列表

时间:2015-09-17 23:10:22

标签: c# clipboard

我是C#的新手,但我正在开展一个工作项目。任务是将值数组从一个应用程序复制到剪贴板,然后将这些值存储在C#中的对象列表中。我已经为复制数据中的列表示的每个字段创建了私有属性,但我无法弄清楚如何从剪贴板解析数据并将其存储在每个属性中。希望这是有道理的。尽管进行了广泛的搜索,我甚至无法确定从哪里开始。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

正如Jack A.在评论中所建议的那样,使用String.Split()

像...一样的东西。

        if (Clipboard.ContainsText())
        {
            string str = Clipboard.GetText();
            string[] values = str.Split("\t".ToCharArray());
            // ... do something with "values" ...
            xxx.aaa = values[0];
            xxx.bbb = values[1];
            xxx.ccc = values[2];
            // etc...
        }
        else
        {
            MessageBox.Show("No Text in the Clipboard!");
        }

但是,您应该检查以确保在拆分后存在正确的列数:

        if (values.Length == 5)
        {
            // ... do something with "values" ...
        }

答案 1 :(得分:0)

我最近在另一个项目中使用了这个:http://joshclose.github.io/CsvHelper/ 虽然您本身并未使用CSV,但您使用的是分隔数据,它允许您指定分隔符。如果您将文本转换为与此帖子类似的文本阅读器:In C#, how can I create a TextReader object from a string (without writing to disk),一旦您映射了数据,它就会轻松地将数据传输到您选择的对象