小编dev*_*hog的帖子

什么是#define?

它们必须放在.cs文件的顶部.你不能在运行时动态创建这些人,你不能给他们一个值或改变他们的价值,因为没有任何价值,所以#define关键字的重点是什么?

这是一个例子:

#define DEBUG
#define MYTEST
using System;
public class MyClass 
{
    static void Main() 
    {
#if (DEBUG && !MYTEST)
        Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && MYTEST)
        Console.WriteLine("MYTEST is defined");
#elif (DEBUG && MYTEST)
        Console.WriteLine("DEBUG and MYTEST are defined");
#else
        Console.WriteLine("DEBUG and MYTEST are not defined");
#endif
    }
}
Run Code Online (Sandbox Code Playgroud)

两者都被定义在最顶层所以为什么还有所有这些ifs?

有人可以告诉我哪些定义有用吗?

对不起,如果这是重复的,请在评论中告诉我,如果有的话,我会删除这个问题.

c#

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

为什么DisplayMember不能与ListBox中手动添加的DataRow一起使用?

这是我手动添加一些DataRow this.listBox1.Items并在WinForms Designer中设置DisplayMemberto列名称的东西,但是稍后显示的只是类型名称列表(System.Data ...)。

如何解决这个问题?

码:

list1.ForEach(x => this.listBox1.Items.Add(x)); //x is DataRow from a filled DataTable
Run Code Online (Sandbox Code Playgroud)

c# ado.net winforms

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

通过使用LINQ过滤两个列表来创建一个dic

我正在寻找一种通过使用linq语句从两个列表中过滤数据来创建dic的方法.例如:

list1: { 1, 2, 3 }
list2: { <apple, 1>, <peach, 3> }
Run Code Online (Sandbox Code Playgroud)

最后的字典看起来应该是这样的: Dictionary<key, value>

使用linq语句将跳过"2",但我不知道哪个?

请问如何使用linq解决这个问题?谢谢

c# linq

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

Foreach和Linq声明均等化

据Resharper说,这两个人应该这样做:

1)

string strTemp = null;
foreach (var s in array)
{
    if (strTemp == null || !strTemp.Contains(s))
    {
        strTemp += (!string.IsNullOrEmpty(strTemp) ? ";" : string.Empty) + s;
    }
}
Run Code Online (Sandbox Code Playgroud)

2)

string strTemp = null;
foreach (var s in array.Where(s => strTemp == null || !strTemp.Contains(s)))
{
    strTemp += (!string.IsNullOrEmpty(strTemp) ? ";" : string.Empty) + s;
}
Run Code Online (Sandbox Code Playgroud)

怎么会这样?我错过了什么?

c# linq resharper

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

相当于无数的<t>无损失

我有一个方法只接受ienumerable<t>参数,但我的本地值是一个简单的可数字.

我无法改变这些条件.

现在我的问题是如何在ienumerable<t>不丢失项目的对象引用的情况下获得可数据?我不想复制数据或其他任何东西.

请问ienumerable.Cast<object>()做的工作?我不希望新的参考项目,我只想ienumerable<t>尽可能快地从可数字.

c# linq

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

HashSet和IEnumerables的执行

当HashSet需要时,HashSet是否始终执行未执行的可发送的可数字?

例如:

list = new List { 1 ..... 1000);

var linq = list.Where(x => x > 10);

var hashSet = new HashSet(linq);
Run Code Online (Sandbox Code Playgroud)

现在当我hashSet.Contains(7)在一个for loop遗嘱中调用时,hashSet总是在需要时执行Where语句?

for(int i = 0; i < 10000; ..)
{
  hashSet.Contains(7);
}
Run Code Online (Sandbox Code Playgroud)

c#

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

标签 统计

c# ×6

linq ×3

ado.net ×1

resharper ×1

winforms ×1