Tag: 循环

循环优化或lambda闭包的问题?

在下面的方法中,我发送一个动作的枚举,并希望返回一个ICommands数组,调用Action来包装那些动作(relayCommand所需)。 问题是,如果我在每个内部(甚至是for循环)中执行此操作,我将获得始终执行参数中传递的第一个操作的命令。 public static ICommand[] CreateCommands(IEnumerable actions) { List commands = new List(); Action[] actionArray = actions.ToArray(); // works //commands.Add(new RelayCommand(o => { actionArray[0](); })); // (_execute = {Method = {Void b__0(System.Object)}}) //commands.Add(new RelayCommand(o => { actionArray[1](); })); // (_execute = {Method = {Void b__1(System.Object)}}) foreach (var action in actionArray) { // always add the […]

C#迭代DataGridView并更改行颜色

我有一个由多行和多列组成的datagridview。 我想迭代每一行并检查特定列的内容。 如果该列包含单词“NO”,我想将整行的前景色更改为红色。 到目前为止,这是对某些代码的尝试,但它肯定无法工作,开始怀疑我是否需要迭代每个单元格? 码: foreach (DataGridViewRow dgvr in dataGridView1.Rows) { if (dgvr.Cells[“FollowedUp”].Value.ToString() == (“No”)) { dgvr.DefaultCellStyle.ForeColor = Color.Red; } }

C#:将字符串数组分成N个实例的最简洁方法N个项目长

我知道如何以丑陋的方式做到这一点,但我想知道是否有更优雅和简洁的方法。 我有一个字符串数组的电子邮件地址。 假设字符串数组具有任意长度 – 它可能包含一些项目,或者它可能包含很多项目。 我想构建另一个字符串,包括来自字符串数组的50个电子邮件地址,直到数组的末尾,并在每个50之后使用Send()方法中的50个地址的字符串调用发送操作。 更普遍的问题是,做这种事情的最干净/最清晰的方法是什么。 我有一个解决方案,这是我的VBScript学习的遗产,但我打赌在C#中有更好的方法。

变量声明是否总是放在循环之外?

声明在循环之外的循环中使用的变量而不是内部更好吗? 有时我会看到在循环中声明变量的示例。 这是否有效地导致程序在每次循环运行时为新变量分配内存? 或者.NET足够聪明,知道它真的是同一个变量。 例如,请参阅此答案中的以下代码。 public static void CopyStream(Stream input, Stream output) { byte[] buffer = new byte[32768]; while (true) { int read = input.Read (buffer, 0, buffer.Length); if (read <= 0) return; output.Write (buffer, 0, read); } } 这个修改过的版本会更有效吗? public static void CopyStream(Stream input, Stream output) { int read; //OUTSIDE LOOP byte[] buffer = […]

C#中IEnumerable类的foreach和for循环之间的区别

我被告知以下代码块之间存在性能差异。 foreach (Entity e in entityList) { …. } 和 for (int i=0; i<entityList.Count; i++) { Entity e = (Entity)entityList[i]; … } 哪里 List entityList; 我不是CLR的期望,但从我可以告诉他们应该归结为基本相同的代码。 有没有人有这样或那样的混凝土(哎呀,我会把包装好的污垢)证据?

在while循环的条件之后放置分号会发生什么?

我偶然遇到过这样的情况: while (true) { while (age == 5); //What does this semi-colon indicate? //Code //Code //Code } while(true)表示这是一个无限循环,但我无法理解while条件完成后的分号是什么,是不是等于这个?: while (age == 5) { } //Code //Code 换句话说,它是否意味着while循环是无用的,因为它永远不会进入块?

做..在C#中循环?

如何在C#中编写Do .. While循环? (编辑:我是一名VB.NET程序员,试图转向C#,所以我确实有.NET / VB语法的经验。谢谢!)

你可以在C#中乱序列举一个集合吗?

有没有办法使用foreach循环向后或以完全随机的顺序迭代集合?

每次迭代都会评估for循环中的条件吗?

当你做的事情: for (int i = 0; i < collection.Count; ++i ) 是每次迭代都调用collection.Count吗? 如果Count属性动态获取调用计数,结果会改变吗?

查找列表的所有子集

我有一个列表,我需要输出列表的每个子集 例如abcde 会输出到 a b cde ab ac ad ae abc abd abe bcd bce …. abcde 我认为正确的术语是组合,不应该在同一行上复制任何元素 我打算用一系列循环尝试这个但是我甚至不确定我们是否要开始 有什么建议?