Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 缺少IEnumerable Concat,不包含';Concat&x27;_C#_Wpf_Linq - Fatal编程技术网

C# 缺少IEnumerable Concat,不包含';Concat&x27;

C# 缺少IEnumerable Concat,不包含';Concat&x27;,c#,wpf,linq,C#,Wpf,Linq,我有以下继承IEnumerable的类 public class LinesEnumerable : IEnumerable<Point> { protected readonly IPointSeries _pointSeries; protected readonly ICoordinateCalculator<double> _xCoordinateCalculator; protected readonly ICoordinateCalcu

我有以下继承IEnumerable的类

public class LinesEnumerable : IEnumerable<Point>
{
    protected readonly IPointSeries _pointSeries;
    protected readonly ICoordinateCalculator<double> _xCoordinateCalculator;
    protected readonly ICoordinateCalculator<double> _yCoordinateCalculator;
    protected readonly bool _isDigitalLine;

    /// <summary>
    /// Initializes a new instance of the <see cref="LinesEnumerable" /> class.
    /// </summary>
    /// <param name="pointSeries">The point series.</param>
    /// <param name="xCoordinateCalculator">The x coordinate calculator.</param>
    /// <param name="yCoordinateCalculator">The y coordinate calculator.</param>
    /// <param name="isDigitalLine">if set to <c>true</c> return a digital line .</param>
    public LinesEnumerable(IPointSeries pointSeries, ICoordinateCalculator<double> xCoordinateCalculator, ICoordinateCalculator<double> yCoordinateCalculator, bool isDigitalLine)
    {
        _pointSeries = pointSeries;
        _xCoordinateCalculator = xCoordinateCalculator;
        _yCoordinateCalculator = yCoordinateCalculator;
        _isDigitalLine = isDigitalLine;
    }

    /// <summary>
    /// Returns an enumerator that iterates through a collection.
    /// </summary>
    /// <returns>
    /// An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.
    /// </returns>
    public virtual IEnumerator<Point> GetEnumerator()
    {
        return _isDigitalLine ?
            (IEnumerator<Point>)new DigitalLinesIterator(_pointSeries, _xCoordinateCalculator, _yCoordinateCalculator) :
            new LinesIterator(_pointSeries, _xCoordinateCalculator, _yCoordinateCalculator);
    }

    /// <summary>
    /// Returns an enumerator that iterates through a collection.
    /// </summary>
    /// <returns>
    /// An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.
    /// </returns>
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}
它表示“System.Collections.IEnumerable”不包含“Concat”的定义,并且“System.Linq.Queryable.Concat(System.Linq.IQueryable,System.Collections.Generic.IEnumerable)”的最佳扩展方法重载具有一些无效参数

我已经添加了System.Linq命名空间


有人知道为什么会发生这种情况吗?

这对你没有帮助,但这个问题是谷歌搜索错误时的最高结果,所以我要说我的问题是什么

我上过以下课程:

class Group
class Row : Group
class Column : Group
我试图用
IEnumerable
调用
IEnumerable
上的Concat,以获得
IEnumerable
。这不起作用,因为无法将列转换为行。解决方案是将我的
IEnumerable
转换为
IEnumerable


e、 g.
rows.Cast().Concat(columns)
当两个集合的类型不同时,编译器将给出此错误。例如:

List<int> l1 = new List<int>();
List<string> l2 = new List<string>();

var l3 = l1.Concat(l2);
var l4 = l1.Union(l2);
List l1=新列表();
列表l2=新列表();
var l3=l1.Concat(l2);
变量l4=l1.并集(l2);
Concat
Union
调用将分别导致以下编译时错误:

“List”不包含“Concat”的定义,最佳扩展方法重载“Queryable.Concat(IQueryable,IEnumerable)”需要类型为“IQueryable”的接收器

“List”不包含“Union”的定义,并且最佳扩展方法重载“Queryable.Union(IQueryable,IEnumerable)”需要类型为“IQueryable”的接收器


这是令人困惑的,因为消息具有误导性,并且VS intellisense可以识别扩展方法。解决方案是
l1
l2
必须是相同类型的列表
T

确保使用System.Linq命名空间。它包含可枚举类,该类包含IEnumerable类的扩展方法?它是
IEnumerable
还是
IEnumerable
?它的IEnumerable已经有了系统。Linq Namespace这个解决方案启发我研究我的集合的类型,以确保它们甚至可以被浓缩。虽然它们是相同的类型,但我使用的是隐式类型数组和显式类型数组。将隐式类型更改为显式类型修复了错误。So
(新字节[]{0x00}).Concat(新字节[]{0x00})更改为
(新字节[]{0x00}).Concat(新字节[]{0x00})
我发现,大多数情况下,我都试图
Concat
一个
IEnumerable
和一个
IEnumerable
对象。我通常使用
Select
,我的意思是
SelectMany
List<int> l1 = new List<int>();
List<string> l2 = new List<string>();

var l3 = l1.Concat(l2);
var l4 = l1.Union(l2);