繁体   English   中英

如何从列表视图以C#winforms中的字典格式获取数据

[英]How to get data from a ListView in Dictionary format in C# winforms

我有一个像ListView控件

列表显示

Dictionary

Dictionary<String,List<String>> MyDict

我需要用ListView数据填充字典

所以字典会像

{ "S.No."  { "1","2","3" } }
{" A" {"A1", "", "" } }
{" B" {"B1", "B2", "" } }
{" C" {"C1", "C2", "C3" } }

使用嵌套的for循环我们可以做到这一点。 但是有什么办法可以使用LINQ做到这一点吗?

使用ToDictionary方法:

Dictionary<string, List<string>> dict =
    listView.Items
            .Cast<ListViewItem>()
            .ToDictionary(
                item => item.Text,
                item => item.SubItems
                            .Cast<ListViewItem.ListViewSubItem>()
                            .Select(subItem => subItem.Text)
                            .ToList());

编辑

好的,我误解了这个问题……这应该可行:

Dictionary<string, List<string>> dict =
    listView.Columns
            .Cast<ColumnHeader>()
            .ToDictionary(
                c => c.Text,
                c => listView.Items
                             .Cast<ListViewItem>()
                             .Select(i => i.SubItems[col.Index].Text)
                             .ToList());

(之所以有效,是因为索引0的子项实际上是拥有其他子项的子项)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM