相关疑难解决方法(0)

将单个项目作为IEnumerable <T>传递

是否有一种常见的方法将单个类型的项传递给T需要IEnumerable<T>参数的方法 ?语言是C#,框架版本2.0.

目前我正在使用一个辅助方法(它是.Net 2.0,所以我有一大堆类似于LINQ的转换/投射辅助方法),但这看起来很愚蠢:

public static class IEnumerableExt
{
    // usage: IEnumerableExt.FromSingleItem(someObject);
    public static IEnumerable<T> FromSingleItem<T>(T item)
    {
        yield return item; 
    }
}
Run Code Online (Sandbox Code Playgroud)

其他方式当然是创建和填充a List<T>或an Array而不是传递它IEnumerable<T>.

[编辑]作为扩展方法,它可能被命名为:

public static class IEnumerableExt
{
    // usage: someObject.SingleItemAsEnumerable();
    public static IEnumerable<T> SingleItemAsEnumerable<T>(this T item)
    {
        yield return item; 
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

[Edit2]我们发现someObject.Yield()(正如@Peter在下面的评论中所建议的那样)是这个扩展方法的最佳名称,主要是为了简洁,所以如果有人想要抓住它的话,它会与XML注释一起:

public static class IEnumerableExt
{
    /// <summary>
    /// Wraps this object instance into an IEnumerable&lt;T&gt;
    /// consisting of a …
Run Code Online (Sandbox Code Playgroud)

.net c# generics ienumerable

357
推荐指数
14
解决办法
8万
查看次数

你最喜欢的LINQ to Objects运算符是什么?它不是内置的?

使用扩展方法,我们可以编写方便的LINQ运算符来解决泛型问题.

我想System.Linq知道命名空间中缺少哪些方法或重载以及如何实现它们.

可能使用现有方法的清洁和优雅的实现是首选.

c# linq ienumerable extension-methods linq-to-objects

73
推荐指数
19
解决办法
5571
查看次数

.Net Standard 2.0中的43个API是什么,但在.Net Framework 4.6.1中却没有?

题为.NET标准API参考的SO问题引用了https://github.com/dotnet/standard/issues/133中的讨论,提到了将包含在.Net Standard 2.0中但不受.Net支持的43个API.框架4.6.1.但是,我无法在Internet上的任何地方找到这43个API的列表.我在搜索中最接近的是https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.mdhttps://github.com/dotnet/standard/blob/ master/docs/versions/netstandard1.6_diff.md,列出了.Net Standard 1.5和1.6中引入的API.起初我以为我的搜索结束了,但后来我意识到:

  1. 这两个列表中有超过43个API,并且
  2. 其中许多已经得到.Net Framework 4.6.1的支持.

在那里,随时随地在互联网上,在43层名单具体包括在标准的.Net 2.0,但不包含在.Net框架4.6.1的API?

.net .net-framework-version .net-core .net-standard

18
推荐指数
1
解决办法
1851
查看次数