标签: ienumerable

从IEnumerable转换为List

我想转换IEnumerable<Contact>List<Contact>.我怎样才能做到这一点?

c# ienumerable list

249
推荐指数
5
解决办法
34万
查看次数

从List <X>转换为List <Y>的语法较短?

我知道可以将一个项目列表从一种类型转换为另一种类型(假设您的对象有一个公共静态显式运算符方法来执行转换),一次一个:

List<Y> ListOfY = new List<Y>();

foreach(X x in ListOfX)
    ListOfY.Add((Y)x);
Run Code Online (Sandbox Code Playgroud)

但是不可能一次投出整个列表吗?例如,

ListOfY = (List<Y>)ListOfX;
Run Code Online (Sandbox Code Playgroud)

c# ienumerable casting list

216
推荐指数
5
解决办法
15万
查看次数

如何将两个IEnumerable <T>连接成一个新的IEnumerable <T>?

我有两个IEnumerable<T>(相同T)的实例.我想要一个新的实例IEnumerable<T>是两者的串联.

在.Net中是否有内置方法可以做到这一点,还是我必须自己编写?

.net c# ienumerable concatenation

183
推荐指数
4
解决办法
10万
查看次数

从IEnumerable <KeyValuePair <>>重新创建字典

我有一个返回的方法IEnumerable<KeyValuePair<string, ArrayList>>,但有些调用者要求方法的结果是字典.如何将其IEnumerable<KeyValuePair<string, ArrayList>>转换为Dictionary<string, ArrayList>可以使用的TryGetValue

方法:

public IEnumerable<KeyValuePair<string, ArrayList>> GetComponents()
{
  // ...
  yield return new KeyValuePair<string, ArrayList>(t.Name, controlInformation);
}
Run Code Online (Sandbox Code Playgroud)

呼叫者:

Dictionary<string, ArrayList> actual = target.GetComponents();
actual.ContainsKey("something");
Run Code Online (Sandbox Code Playgroud)

c# collections ienumerable dictionary idictionary

165
推荐指数
2
解决办法
9万
查看次数

嵌套的yield返回IEnumerable

我有以下功能来获取卡的验证错误.我的问题涉及处理GetErrors.两种方法都具有相同的返回类型IEnumerable<ErrorInfo>.

private static IEnumerable<ErrorInfo> GetErrors(Card card)
{
    var errors = GetMoreErrors(card);
    foreach (var e in errors)
        yield return e;

    // further yield returns for more validation errors
}
Run Code Online (Sandbox Code Playgroud)

是否可以返回所有错误GetMoreErrors而无需通过它们进行枚举?

想一想这可能是一个愚蠢的问题,但我想确保我不会出错.

c# ienumerable yield yield-return

158
推荐指数
5
解决办法
3万
查看次数

IQueryable和IEnumerable之间有什么区别

我对这种差异感到困惑.作为.Net的新手,我知道我可以IEnumerables使用Linq扩展进行查询.那么这是什么IQueryable以及它有何不同?


另请参见IQueryable [T]和IEnumerable [T]之间的区别是什么?与这个问题重叠.

linq ienumerable .net-3.0 iqueryable

148
推荐指数
5
解决办法
8万
查看次数

IList vs IEnumerable实体集合

当我在我的域中有实体列表的实体时,它们应该作为IList或IEnumerables公开吗?例如Order有一堆OrderLines.

collections ienumerable ilist

144
推荐指数
2
解决办法
5万
查看次数

如何检查IEnumerable是空还是空?

我爱string.IsNullOrEmpty方法.我很想拥有能够为IEnumerable提供相同功能的东西.有这样的吗?也许一些收集助手班?我问的原因是,在if语句中,如果模式是代码,代码看起来很混乱(mylist != null && mylist.Any()).拥有它会更加清洁Foo.IsAny(myList).

这篇文章没有给出答案:IEnumerable是空的?.

.net c# linq collections ienumerable

144
推荐指数
9
解决办法
18万
查看次数

IEnumerable <char> to string

我以前从来没有偶然发现过这个问题,但我现在已经感到惊讶,因为我找不到一个非常简单的方法来转换IEnumerable<char>为a string.

我能想到的最好的方法是string str = new string(myEnumerable.ToArray());,但是,对我来说,似乎这会创造一个新的char[],然后string从中创造一个新的,这看起来很昂贵.

我认为这将是.NET框架内置的常用功能.有更简单的方法吗?

对于那些感兴趣的人,我想使用它的原因是使用LINQ来过滤字符串:

string allowedString = new string(inputString.Where(c => allowedChars.Contains(c)).ToArray());
Run Code Online (Sandbox Code Playgroud)

.net c# string ienumerable

136
推荐指数
6
解决办法
7万
查看次数

如何获取IEnumerable中元素的索引?

我写了这个:

public static class EnumerableExtensions
{
    public static int IndexOf<T>(this IEnumerable<T> obj, T value)
    {
        return obj
            .Select((a, i) => (a.Equals(value)) ? i : -1)
            .Max();
    }

    public static int IndexOf<T>(this IEnumerable<T> obj, T value
           , IEqualityComparer<T> comparer)
    {
        return obj
            .Select((a, i) => (comparer.Equals(a, value)) ? i : -1)
            .Max();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道它是否已经存在,是吗?

.net c# linq ienumerable indexof

134
推荐指数
8
解决办法
16万
查看次数