yield-return

    9热度

    3回答

    我有返回所有子树节点递归函数,给定的起始根节点。 private IEnumerable<Node> getAllNodesRecursively(Node subnode) { foreach (Node node in subnode.Nodes) getAllNodesRecursively(node); yield return subnode; }

    5热度

    3回答

    我在斯卡拉有一个DateTime和TimeSpan类(假设<和+运算符正常工作)。我试图定义一个'范围'功能,它需要一个开始/停止时间和一个步进时间。在C#中,我会用yield来做到这一点,我认为我应该可以在Scala中做同样的事情......除非我遇到一个奇怪的错误。 在'yield t'这一行上,我收到“非法声明的开始”。这段代码 def dateRange(from : DateTime,

    4热度

    1回答

    我想写一个单元测试来检查解析错误。我从一个文件流入数据,解析它并返回带有返回值的解析结果,然后将它传递给数据层以批量插入。 我无法嘲笑对数据层的调用。因为它被嘲笑,它实际上从来没有枚举yield return的值,因此我的解析方法从不执行。 public class Processor { public IUnityContainer Container { get; set; }

    3热度

    2回答

    我有我想要划分成子集的项目列表。为了讨论的缘故,可以说他们是文件。我希望每个子集最多包含5个文件,并且如果可能的话,子集中文件的总大小应小于1 MB。如果一个文件超过1MB,它应该在一个子集中。 我用一个通用的“item metric”而不是文件大小写成稍微更一般的形式。但我怀疑有一个更简单和/或更好的方法来做到这一点。有什么建议么? 下面是我得到了什么: public static IEnume

    1热度

    2回答

    我有一个WPF应用程序,它显示了DataGrid(XCeed DataGrid)中的项目。当数据库(SQLite)包含大量项目时,该应用需要一段时间才能加载,因此如果可能的话,我希望使用yield return来按需加载这些项目。我知道XCeed DataGrid supports UI virtualization,但我不完全确定如何转换下面的同步代码块。 目前,在BackgroundWorke

    1热度

    2回答

    有没有办法摆脱.FirstOrDefault()以下设置。我喜欢使用yield单词,但是我想将IsRequired方法浓缩到我不必使用.FirstOrDefault()的地步。 PlayerValidator protected override IEnumerable<ValidationResult> Validate(PlayerModel entity, IValidationProvid

    6热度

    3回答

    如何获取执行属性的属性名称。如果属性使用“return”,则返回 MethodBase.GetCurrentMethod()。Name返回属性的名称。但是当我使用“yield return”MethodBase.GetCurrentMethod()。Name返回“MoveNext”。如何在使用yield return时获取执行属性名称? 示例代码 class Program {

    4热度

    4回答

    呃,不是很清楚如何词组这个,但.. 给出一个IEnumerable使用收益回报,包含三个实例创建为什么调用.First()似乎返回第一个实例的'副本'? 请参阅以下代码; public class Thing { public bool Updated { get; set; } public string Name { get; private set; }

    4热度

    1回答

    在下面的测试中,使用yield return时无法使Console.WriteLine真正打印。 我正在尝试收益回报,并且我明白我的理解中缺少某些东西,但无法找到它是什么。为什么不在PrintAllYield内打印字符串? 代码: class Misc1 { public IEnumerable<string> PrintAllYield(IEnumerable<string> list

    21热度

    3回答

    我想用并行循环这样处理事情: public void FillLogs(IEnumerable<IComputer> computers) { Parallel.ForEach(computers, cpt=> { cpt.Logs = cpt.GetRawLogs().ToList(); }); } 好,它工作正常。但是如果我想让FillLog