【问题标题】:How to fix "the best overloaded method match for Generic.List<T>.AddRange(Generic.IEnumerable<T>) has some Invalid arguments."?如何修复“Generic.List<T>.AddRange(Generic.IEnumerable<T>) 的最佳重载方法匹配有一些无效参数。”?
【发布时间】:2019-06-28 07:56:18
【问题描述】:

当我将 Generic.IEnumerable 添加到 Generic.List 时出现上述错误 如 tblOriginalModelInputall.AddRange(xxdata)

数据表 dtTcikerStatusUpdateInTemp2 = objUOW.GetData();

            var TcikerStatusUpdateInTemp2 = dtTcikerStatusUpdateInTemp2.AsEnumerable().Where(x => x.Field<string>("Ticker").Equals(tickerName)
                && x.Field<string>("Earnings").Equals(earningsToCompare)
                && (((String.IsNullOrEmpty(x.Field<string>("Status")) ? "" : x.Field<string>("Status").Trim()).Equals("A") && (x.Field<string>("InProduction") == null || x.Field<string>("InProduction").Equals(false)))
                || ((String.IsNullOrEmpty(x.Field<string>("Status")) ? "" : x.Field<string>("Status").Trim()).Equals("R")
                && !String.IsNullOrEmpty(x.Field<string>("Comment"))))
                && !x.Field<string>("Client").ToLower().Trim().Equals("cascade"))
                .ToList();               

            if (TcikerStatusUpdateInTemp2.Any())
            {
                var distinctBroker = TcikerStatusUpdateInTemp2.AsEnumerable().Select(x => x.Field<string>("ModelFile").Split('_')[0].Trim()).Distinct().ToList();

                if (distinctBroker.Any())
                {
                    RdssDataPram.TblOriginalModelInput objjj = new RdssDataPram.TblOriginalModelInput();
                    List<RdssDataPram.TblOriginalModelInput> tblOriginalModelInputall = new List<RdssDataPram.TblOriginalModelInput>();

                    foreach (var data in distinctBroker)
                    {
                        var xxdata = TcikerStatusUpdateInTemp2.Where(x => x.Field<string>("ModelFile").Contains(data.ToString().Trim() + "_")).OrderByDescending(y => y.Field<int>("ID")).ToList();

                        if (xxdata != null)
                        {
                            tblOriginalModelInputall.AddRange(xxdata); // **error showing here**
                        }
                    }

【问题讨论】:

  • 这个问题需要更多的工作,不清楚你在问什么,或者问题是什么
  • 再次使用var 来掩盖底层错误...请使用完整类型声明var TcikerStatusUpdateInTemp2,然后我们可以看到错误
  • 问题显示:...最佳重载方法匹配 'System.Collections.Generic.List .AddRange(System.Collections.Generic.IEnumerable)'.......TcikerStatusUpdateInTemp2 是一个变量,tblOriginalModelInputall 是一个列表 Generic.List,xxdata 是一个 Generic.IEnumerable...我正在尝试在 tblOriginalModelInputall 上使用 AddRange 和 xxdata... .Error 显示 tblOriginalModelInputall.AddRange(xxdata) 该行。
  • ".TcikerStatusUpdateInTemp2 是一个变量" 是的,我们可以看到。好比说:影子是被动物抛出的,我们问你什么样的动物?猫?马?鲸?换句话说,xxdata 中的元素类型是什么?或在TcikerStatusUpdateInTemp2 中? IEnumerable&lt;????&gt; ?
  • 列表 TcikerStatusUpdateInTemp2

标签: c# linq generic-list generic-collections


【解决方案1】:

看起来您正在尝试在 tblOriginalModelInputall 上使用 AddRange,即 List&lt;RdssDataPram.TblOriginalModelInput&gt;,而您想要在最后添加的集合 xxdata 不是兼容类型。 您在这里使用的类型不是很清楚,但我认为它们不匹配。

【讨论】:

  • 是的……!!有什么解决办法吗?
  • 如果您不提供有关您使用的类型、类和变量的更多详细信息,如何为您提供帮助。 tblOriginalModelInputall 和 xxdata 是否以任何可以应用 Select 语句的方式相关?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 2018-07-14
  • 2013-01-07
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多