如何从List中的Dictionary <string,object>收集所有键的值

时间:2015-04-30 13:23:34

标签: c# list csv dictionary collections

我有一个 fbIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ListItem item = PlayerService.listItems.get(PlayerService.currentSongIndex); if (ShareDialog.canShow(ShareLinkContent.class)) { String desc = "I'm listening to: " + item.getTitle() + ", " + item.getAlbum() + " by " + item.getArtist(); ShareLinkContent linkContent = new ShareLinkContent.Builder() .setContentTitle("G-Music Station") .setContentDescription(desc) .setContentUrl(Uri.parse("https://play.google.com")) .setImageUrl(Uri.parse("http://radiogbd.com//images/logo.png")) .build(); ShareDialog shareDialog = new ShareDialog(PlayerActivity.this); shareDialog.show(linkContent); } } }); 集合。

我的数据类有多个成员。

Dictionary<string, Data>

因此,字典中的每个键都有一个值列表。 我想写一个csv文件中所有键的值。

我的csv文件将包含

  • 的docID
  • 文件名
  • DOCTYPE

我一直在使用LINQ2CSV库写入csv,但由于它接受列表和文件路径作为参数,我无法将所有键的值收集到列表中。 请建议一个更好的方法来实现这一目标。

2 个答案:

答案 0 :(得分:2)

LINQ2CSV的Write方法接受IEnumerable<T>。您的Values字典可用作数组。你可以这样做:

cc.Write(yourDictionary.Values, "filePath.csv");

无需从词典List<Data>获取Values,但如果您仍想创建List<Data>,则可以执行以下操作:

List<Data> myList = yourDictionary.Values.ToList();

List<Data> myList = new List<Data>(yourDicitionary.Values);

答案 1 :(得分:2)

您可以将字典的值复制到列表中:

var list = dictionary.Values.ToList();