将制表符分隔的剪贴板数据存储到 C# 中的对象列表
Store tab delimited clipboard data to list of objects in C#
我是 C# 的新手,但正在处理一个项目。任务是将一组值从一个应用程序复制到剪贴板,然后将这些值存储在 C# 中的对象列表中。我已经为复制数据中的列表示的每个字段创建了私有属性,但我不知道如何解析剪贴板中的数据并将其存储在每个 属性 中。希望这是有道理的。尽管进行了广泛的搜索,但我什至不知道从哪里开始。任何帮助将不胜感激。
正如 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" ...
}
我最近在另一个项目中使用了它:http://joshclose.github.io/CsvHelper/
尽管您本身并未使用 CSV,但您使用的是带分隔符的数据,它允许您指定分隔符。如果您将文本转换为 reader 类似于 post: In C#, how can I create a TextReader object from a string (without writing to disk) 的文本,它会在您映射后轻松地将数据传输到您选择的对象
我是 C# 的新手,但正在处理一个项目。任务是将一组值从一个应用程序复制到剪贴板,然后将这些值存储在 C# 中的对象列表中。我已经为复制数据中的列表示的每个字段创建了私有属性,但我不知道如何解析剪贴板中的数据并将其存储在每个 属性 中。希望这是有道理的。尽管进行了广泛的搜索,但我什至不知道从哪里开始。任何帮助将不胜感激。
正如 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" ...
}
我最近在另一个项目中使用了它:http://joshclose.github.io/CsvHelper/ 尽管您本身并未使用 CSV,但您使用的是带分隔符的数据,它允许您指定分隔符。如果您将文本转换为 reader 类似于 post: In C#, how can I create a TextReader object from a string (without writing to disk) 的文本,它会在您映射后轻松地将数据传输到您选择的对象