标签: ienumerable

GetEnumerator在此上下文中不存在

我已经实现了一个自定义链表,我在实现IEnumerator <>时遇到了问题.具体来说,编译器告诉我The name "GetEnumerator" does not exist in the current context.我觉得我正在实现它,正如我在众多stackoverflow帖子和教程中看到的那样,我错过了什么?

这是我的数据结构:

namespace TestReportCreator_v3
{
    public class FindingsTable : IEnumerable<string>
    {
        private Node head, mark;
        public class Node
        {
            public string description; //covers weakness, retinaDesc, nessusDesc
            public string riskLevel; //covers impactLevel, retinaRisk, nessusRisk
            public string boxName; //box name results apply to
            public string scanner; //wassp, secscn, retina, nessus
            public string controlNumber; //ia control number impacted, wassp and secscn only
            public string fixAction; //comments, retinaFix, nessusSolu
            public string auditID; …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable ienumerator linked-list

0
推荐指数
1
解决办法
358
查看次数

如何获得所有Y对象中的所有X对象?

我有一个名为Sheet的类,其中包含一个包含Row对象的List .每个Row对象都有一个包含Cell对象的List .现在我想实现一个Sheet.Cells属性,该属性返回所有行上的所有单元格.我确信必须有一个优雅的LINQ解决方案,但一直无法弄清楚.假设我在this.rows中获得了所有行,如何使用LINQ获取包含所有行中所有单元格的IEnumerable?

IEnumerable<Cell> cells = this.rows ...?
Run Code Online (Sandbox Code Playgroud)

c# linq excel ienumerable vsto

0
推荐指数
1
解决办法
79
查看次数

循环返回AFTER退出(涉及IEnumerable)导致边界错误

我知道有很多方法可以对这只猫进行修饰,但是我遇到了一些基本的while循环问题,它们正常退出,但是在从父函数返回IEnumerable.ToList()时会返回(并增加计数器).基本上我要做的是搜索单个关键字的列表并过滤掉结果集,直到我只获得包含所有关键字的项目.

它退出循环,然后一旦命中返回,它就会返回到循环中,i变量增加另一个位置(高于count变量),因此broken [i]抛出一个极限之外的错误.

虽然我知道有更好的方法来执行搜索,但我也非常感兴趣为什么代码会返回到退出的循环,再次递增,并导致错误 - 以及如何修复它.这很奇怪,我以前从未见过这个.是因为.ToList强制枚举备份链吗?

码:

public IEnumerable<Item> GetItemsForSearch(string search=null)
    {
        ParserDataContext data = new ParserDataContext();            
        if (search != null && search != "")
        {                   
            string[] broken = search.Split(' ');                
            IEnumerable<Item> watches = data.Items.Where(x => x.Title.ToLower().Contains(broken[0].ToLower())).OrderByDescending(x => x.DateListed).ThenByDescending(x => x.ID);

            int i = 1;
            int count = broken.Count();
            while (i < count)
            {
                if (broken[i] != null)
                item = items.Where(x => x.Title.ToLower().Contains(broken[i].ToLower()));
                i++;
            }

            return items.Take(50).ToList();
        }
Run Code Online (Sandbox Code Playgroud)

}

c# ienumerable search loops

0
推荐指数
1
解决办法
114
查看次数

替换IEnumerable &lt;string&gt;中的特定项目

我是C#和IEnumerable的新手。我想替换IEnumerable中的特定项目。例如

IEnumerable<string> m_oEnum = new string[] {"abc","def","ghi", "abcdef"};
Run Code Online (Sandbox Code Playgroud)

我只想将字符串“ abc”替换为“ abc-test”,但不更改“ abcdef”。

c# ienumerable search replace

0
推荐指数
1
解决办法
6587
查看次数

从IEnumerable <T>中删除项目不起作用

我试图从中删除对象 IEnumerable<ImportDataMappingModel> GridList

我尝试了以下选项,但没有它们正在工作.

value 是一处房产 ImportDataMappingModel

GridList.ToList().RemoveAll(o => o.value==null);
GridList=GridList.TakeWhile(o => o.value!=null);
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc ienumerable list

0
推荐指数
1
解决办法
542
查看次数

循环通过IEnumerable <object>

我正在使用枚举和LINQ分组来分组来自具有5列的DataTable的数据.现在我需要访问结果中的每个列数据.

编辑:

    private IEnumerable<object> getItemsForDisplay()
    {
           var result = toDisplay.AsEnumerable()
             .GroupBy(x => new
             {
                 Col1 = x.Field<string>("rItem"),
                 Col2 = x.Field<string>("rMaterial"),
                 Col3 = x.Field<string>("rSpecs")
             })
            .Select(g => new
            {
                Col1 = g.Key.Col1,
                Col2 = g.Key.Col2,
                Col3 = g.Key.Col3,
                Col4 = String.Join(", ", g.Select(row => row.Field<string>("rQuantity"))),
                Col5 = String.Join(", ", g.Select(row => row.Field<string>("rOptional"))),
            }).ToList();
         return result;
  }

         //In another function
         foreach (var item in result)
        {
            //item.tostring shows this: {"aaa","bbb","ccc","ddd","eee")
            //turn it to array string or list to access "aaa".. etc etc …
Run Code Online (Sandbox Code Playgroud)

c# linq ienumerable object

0
推荐指数
1
解决办法
1万
查看次数

LINQ区别不使用IEqualityComparer?

我有以下型号:

public class Word {
      public string Original { get; set; }
      public string Normalized { get; set; }
      public string Root { get; set; }
      public string Subroot { get; set; }
      public Regex SubrootRegex { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我创建了以下三个IEqualityComparer<Word>:

public class NormalizedWordComparer : IEqualityComparer<Word> {
     public bool Equals(Word x, Word y) {
          return x.Normalized == y.Normalized;
     }
     public int GetHashCode(Word obj) {
          return obj.GetHashCode();
     }
}

public class RootWordComparer : IEqualityComparer<Word> {
     public bool Equals(Word …
Run Code Online (Sandbox Code Playgroud)

.net c# linq ienumerable

0
推荐指数
1
解决办法
685
查看次数

从枚举列表中获取最大值

我想从我的枚举列表中获取最小值.我知道我可以:

return Enum.GetValues(typeof(VerloningsPeriodeType)).Cast<VerloningsPeriodeType>().Min();
Run Code Online (Sandbox Code Playgroud)

但是,这只是来自ENUM,我希望它来自我的var.

就像是:

public static ENUM_A BepaalMaxVerloningsPeriode(IEnumerable<ENUM_A> periods)
{
   return Enum.GetValues(typeof(ENUM_A)).Cast<ENUM_A>().Min();
}
Run Code Online (Sandbox Code Playgroud)

我在哪里放置periodsvar?

c# ienumerable enums list

0
推荐指数
1
解决办法
1057
查看次数

使类与foreach兼容

我有一个包装对象列表的类.我希望这个类与foreach循环兼容.

我已经看到了几个关于如何在SO上做到这一点的问题,但大多数答案都没有为我编译.

class TrackList
{
    private List<Track> tracks = new List<Track>();
}
Run Code Online (Sandbox Code Playgroud)

你会添加什么来使其适用于每个?

到目前为止,我有:

class TrackList : IEnumerable<Track>
{
    // ...

    public IEnumerator<Track> GetEnumerator()
    {
        return trackList.GetEnumerator();
    }

    System.Collections.IEnumerator System.Collections.IEnumerator.GetEnumerator()
    {
        return this.GetEnumerator();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它说(翻译错误):

错误1'HP.TrackList'未实现接口成员'System.Collections.IEnumerable.GetEnumerator()'.'HP.TrackList.GetEnumerator()'无法实现'System.Collections.IEnumerable.GetEnumerator()',因为它没有与'System.Collections.IEnumerator'对应的返回类型.XXX\TrackList.cs 11

如果相反我使用:

IEnumerator<Track> IEnumerator<Track>.GetEnumerator()
{
    return this.GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)

给我同样的错误.

c# ienumerable ienumerator foreach interface

0
推荐指数
1
解决办法
920
查看次数

获取IEnumerable的元素

我得到一个像这样的对象列表:

IEnumerable personeller = (IEnumerable)sicil_model.OlayForm_Personel();
Run Code Online (Sandbox Code Playgroud)

我像这样在里面循环

foreach (var personel in personeller)
{
 //can't do anything...
}
Run Code Online (Sandbox Code Playgroud)

我在里面循环personeller,我可以看到这样的所有元素

personeller[0] | { Id = 5, Kimlik = "Koray Durudo?an", EMail = "koray@outlook.com", DepartmanAdi = "Yazilim", PozisyonAdi = "Yazilim Geli?tirme" }

personeller[1] | { Id = 6, Kimlik = "Hasan P?nar", EMail = "hasan@dincerelektronik.com.tr", DepartmanAdi = "Yazilim", PozisyonAdi = "Yazilim Geli?tirme" }
    .
    .
    .
Run Code Online (Sandbox Code Playgroud)

就像这样..问题是,我无法访问对象的元素.例如,我如何获得personeller [0]或者personeller [1]的人力资源?

我做了这样一堂课

public class Personel_Form 
{
    public int Id { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable

0
推荐指数
1
解决办法
526
查看次数