我目前正试图在统一的情况下制作一本协同词典。其思想是,有几个字符,当玩家按下一个按钮时,它会调用一个函数,查找字典并运行一个与字符能力相对应的协同线(因为每个字符都有不同的能力)。
下面是我的代码:
private string characterName // The name of the player's character
private Dictionary<string, IEnumerator> abilitiesDictionary = new Dictionary<string, IEnumerator>();
void Start()
我有一个foreach块,为了进行跟踪调试,我想在其中绘制foreach内部步骤的索引。作为一名C#新手,我这样做:
int i = 1;
foreach (x in y)
{
... do something ...
WriteDebug("Step: "+i.ToString());
i++;
}
我想知道是否有任何方法可以获得当前步骤的索引值,而无需为此目的显式创建一个变量。
编辑:为了澄清,我显然熟悉for循环的选项,但是我正在处理的不是一个数组,而是一个无序集合。编号的目的只是为了显示调试级别的进度,而不是其他。
我正在尝试用c#做一个ToDo应用程序。我设法使用户可以向列表中添加任务。然而,我希望能够在foreach循环中打印出listItems,但我不知道如何到达它。
这是我的班级和我的清单:
using System.Collections.Generic;
namespace ToDo
{
public class TodoCollection
{
//Declaring my fields
List<Task> _CurrentTasks = new List<Task>();
List<Task&
我正在使用字典创建我自己的HashSet,它作为标准的HashSet工作。我这样做是因为XNA XBox的C#不支持HashSets。
这段代码是基于我找到的一个示例中的代码。我已经编辑了示例以修复一些问题,但它仍然不能编译。
public class HashSet2<T> : ICollection<T>
{
private Dictionary<T, Int16> dict;
// code has been edited out of this example
// see further on in the questio
考虑以下代码,在玫瑰树上实现深度优先搜索:
public class RoseTree<T>
{
public T Value;
public IEnumerable<Lazy<RoseTree<T>> Children;
public IEnumerable<T> Flatten()
{
yield return Value;
foreach (var childValue in Children.SelectMany(t => t.Value.Flatten()))
foreach究竟是如何在C#中实现的?
我想象它的一部分看起来像:
var enumerator = TInput.GetEnumerator();
while(enumerator.MoveNext())
{
// do some stuff here
}
然而,我不确定到底发生了什么。使用什么方法为每个周期返回enumerator.Current?它是为每个循环返回的,还是需要一个匿名函数或其他东西来执行foreach的主体
根据,使用IEnumerable是因为:
通过定义返回枚举数的单个方法,IEnumerable提供了灵活性,因为
framed off to another class(Understood)逻辑可以是->iteration
->Moreover it means that several consumers can enumerate the collection at once without interfering with each other(Not )
我听不懂第二点!
IEnumerable如何使多个使用者能够同时枚举集合而不是使用IEnumerator
我正在学习c#迭代器,我试图让它们在类似树的结构中工作,但不幸的是,我所能得到的只是枚举根及其直接子元素。
public class Node : IEnumerable<Node>
{
private Node Parent = null;
private List<Node> Children = new List<Node>();
public string Name { get; private set; };
public Node(string name)
{
Name = name;
}
public
谁能教我如何编写C#可枚举类,使Excel VBA中的"for each“结构正常工作?我用一个名为People的测试类对此进行了尝试,该类实现了IEnumerable,并包含一个Person对象数组。"foreach“结构在C#中工作得很好,但在VBA中我只能以老式的方式循环。
这段VBA代码运行得很好:
Dim P As Person
Dim PP As New People
For i = 0 To PP.Count - 1
Set P = PP(i)
Debug.Print P.firstName + " " + P.lastName
我目前正在学习C#,目的是有效地学习usingRazor和Umbraco,我有一点PHP语言的背景,也有一定的JavaScript知识。
我遇到了IEnumerator界面,很难理解它。我已经设置了下面的代码片段来演示如何使用foreach遍历数组:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace cardEnum
{
class suitsEnumerator
{
更多的F#问题。下面有一个二进制阅读器的实现。我想让它像一个可计数的序列一样工作。下面的代码给出了下面的错误,我和往常一样不知道如何解决它。我有一个c#实现,其中我必须为.Current属性实现两种不同的重写。我想我在这里也要做同样的事,但不知道怎么做。一如既往,谢谢你的帮助。
错误FS0366:没有给出Collections.IEnumerator.get_Current() : obj的实现。注意,所有接口成员都必须在适当的interface声明(例如interface ... with member ... )下实现和列出。
namespace persisitence
open
我在用C#构建的Windows Form应用程序中遇到了问题。错误是"foreach语句不能操作类型为'CarBootSale.CarBootSaleList‘的变量,因为'CarBootSale.CarBootSaleList’不包含‘GetEnumerator’的公共定义“。
我似乎不明白是什么导致了这种情况。
这是抛出错误的代码:
List<CarBootSaleList> Sortcarboot = new List<CarBootSaleList>();
foreach (CarBootSale c i
所以我想我理解了c#的屈服回报在很大程度上和蟒蛇的产量是一样的,而我认为我理解它。我认为编译器将一个函数转换为一个带有指针的对象,该对象指向应该恢复执行的位置,并且当对下一个值的请求出现时,该对象会一直运行到下一个结果,它将更新要继续执行的位置的指针,并返回一个值。
在python中,这类似于懒惰的计算,因为它根据需要生成值,但一旦使用了这些值,如果不能保存在另一个变量中,则可以对其进行gc‘编辑。尝试对这样一个函数的结果进行迭代时,除非将其转换为一个列表,否则会两次返回一个空的可迭代。
例如。
def y():
list = [1,2,3,4]
for i in list: