【问题标题】:DataGridView and IEnumerableDataGridView 和 IEnumerable
【发布时间】:2016-03-29 13:46:38
【问题描述】:

我正在使用 LINQtoCsv (Info here),但遇到了问题。

我有一个 IEnumerable 设置,就像那个页面说的那样:IEnumerable<Character> characters = cc.Read<Character>(file, inputFileDescription);

我不知道如何从 IEnumerable 转到将在 datagridview 上显示的内容。我以前从未使用过 LINQ 或 IEnumerable,如果这看起来有点愚蠢,请见谅。

我的代码与site 上的示例几乎相同(名称明显不同),因此最简单的方法是假装这些示例是我的代码。

【问题讨论】:

    标签: c# winforms linq datagridview ienumerator


    【解决方案1】:

    我怀疑它就像设置DataSource 一样简单:

    view.DataSource = characters;
    

    根据 LINQ to CSV 的功能,您可能希望首先将所有内容都放入 List<T>

    var characters = cc.Read<Character>(file, inputFileDescription).ToList();
    view.DataSource = characters;
    

    您可能希望直接设置列等,覆盖描述性标题等。点击文档链接获取大量示例等。

    【讨论】:

    • 我不能简单地做List&lt;Character&gt; characters = cc.Read&lt;Character&gt;(file, inputFileDescription);,因为我得到这个错误:Cannot implicitly convert type 'System.Collections.Generic.IEnumerable&lt;ISK_Helper.Ops.Character&gt;' to 'System.Collections.Generic.List&lt;ISK_Helper.Ops.Character&gt;'. An explicit conversion exists (are you missing a cast?) ISK-Helper C:\Users\Robert\documents\visual studio 2015\Projects\ISK-Helper\ISK-Helper\Ops.cs 60
    • @user1720845:哎呀——我本来是想打一个ToList 的电话。我已经编辑了我的答案。
    • 我尝试了您的编辑,我收到以下错误:An unhandled exception of type 'LINQtoCSV.NameNotInTypeException' occurred in LINQtoCSV.dll Additional information: The input file has column name "EndPay(M) " in the first record, but there is no field or property with that name in type "ISK_Helper.Ops+Character". 然后它列出了文件的路径。如果您查看问题中的链接,第一个示例是一个定义标题的类(由 Read 引用)......令人困惑的是,该标题恰好在文件中。
    • @user1720845:这与我展示的代码无关,与您提出的问题无关,与数据有关。我无法帮助您 - 如果您需要更多帮助,我建议您提出一个新问题,包括示例数据和一个简短但完整的失败程序。
    • 对不起,是的,有一个轻微的格式问题,它确实有效!
    猜你喜欢
    • 2019-03-17
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多