小编joh*_*hnc的帖子

如何在绑定到DataTable的ComboBox中插入"Empty"字段

我在WinForms应用程序上有一个组合框,其中可以选择一个项目,但它不是必需的.因此,我需要一个'Empty'第一项来表示没有设置任何值.

组合框绑定到从存储过程返回的DataTable(我没有在我的UI控件上为匈牙利表示法道歉:p):

 DataTable hierarchies = _database.GetAvailableHierarchies(cmbDataDefinition.SelectedValue.ToString()).Copy();//Calls SP
 cmbHierarchies.DataSource = hierarchies;
 cmbHierarchies.ValueMember = "guid";
 cmbHierarchies.DisplayMember = "ObjectLogicalName";
Run Code Online (Sandbox Code Playgroud)

我怎么能插入这样一个空项目?

我有权更改SP,但我真的不想用UI逻辑"污染"它.

更新:这是我已经空白的DataTable.NewRow(),谢谢.我已经对你进行了修改(无论如何都是3个答案).在决定'回答'之前,我试图让迭代器模式工作

更新:我认为这个编辑让我进入了社区Wiki的土地,我决定不指定单个答案,因为它们都有其领域背景的优点.感谢您的集体投入.

c# combobox

18
推荐指数
3
解决办法
6万
查看次数

C#通过属性反射设置属性值

我试图通过类属性上的属性构建一个对象,该属性指定提供的数据行中的列是属性的值,如下所示:

    [StoredDataValue("guid")]
    public string Guid { get; protected set; }

    [StoredDataValue("PrograGuid")]
    public string ProgramGuid { get; protected set; }
Run Code Online (Sandbox Code Playgroud)

在基础对象的Build()方法中,我将这些属性的属性值设置为

        MemberInfo info = GetType();
        object[] properties = info.GetCustomAttributes(true);
Run Code Online (Sandbox Code Playgroud)

但是,在这一点上,我意识到我的知识有限.

首先,我似乎没有找回正确的属性.

现在我有了属性,我如何通过反射设置这些属性?我在做/思考一些根本不正确的事情吗?

c# reflection

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

在什么时候使用StringBuilder变得无关紧要或开销?

最近我发现自己使用StringBuilder进行所有字符串连接,无论大小,但是在最近的性能测试中,我换掉了同事的stringOut = string1 +"." String2样式连接(在一个10000x +循环中使用,每次都是StringBuilder)用于StringBuilder只是为了看看它在次要连接中会有什么不同.

我发现,在性能测试的许多次运行中,无论是串联还是StringBuilder,更改都无论是更高还是更低(重申这是针对小型连接).

在什么时候,StringBuilder对象的"newing up"否定了使用它的好处?

.net stringbuilder

18
推荐指数
3
解决办法
2710
查看次数

.NET // vs ///评论约定

我只是查看F#,如果这是一个愚蠢的问题,请道歉,但在VS2008 F#CTP 1.9.6.2'Tutorial'项目中,//和///都用于评论代码.

两个斜杠与三个斜杠注释之间是否存在功能差异,或者是否使用///对函数进行注释(并显示在教程代码中)并使用//用于其他所有内容?

c# f# commenting

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

为什么使用表格进行网站布局是如此邪恶

我是一个Winforms和业务引擎开发人员,他在2年多来第一次使用asp.net,在那段时间我注意到了一些常规更改.

反布局'运动背后的逻辑是什么?

它是否允许使用css类来处理布局,如果是这样,这应该是页面上的问题,你确定它会保持静态,还是只是被认为是"丑陋"?

html layout html-table

17
推荐指数
5
解决办法
2083
查看次数

如何在编译的F#程序中执行字符串中的F#代码?

如何从已编译的F#程序中的字符串执行F#代码?

f#

15
推荐指数
3
解决办法
4567
查看次数

C#字符串格式表示小数和小时的小时和分钟

是否有一个简单的字符串格式,它将采用小数表示小时和小时的分数,并将其显示为小时和分钟?

例如:5.5格式化显示5小时30分钟.

我很乐意自己编写代码,但是如果可用的话,我更愿意使用现有的功能

.net c# string-formatting

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

C#中的部分类

在webforms/winforms生成的代码场景之外是否有很好的使用部分类?或者这个功能基本上是支持吗?

c# partial-classes

14
推荐指数
5
解决办法
5296
查看次数

如何从循环中的Enumerable集合中删除对象

重复

通过迭代修改集合


有没有一个很好的模式允许我绕过无法删除对象,而我循环通过一个可枚举的集合(例如,字典中的IList或KeyValuePairs)

例如,以下操作失败,因为它修改了在foreach期间枚举的List

foreach (MyObject myObject in MyListOfMyObjects)
{
     if (condition) MyListOfMyObjects.Remove(myObject);
}
Run Code Online (Sandbox Code Playgroud)

在过去,我使用了两种方法.

我已经用反向for循环替换了foreach(以便在我删除对象时不更改我循环的任何索引).

我还尝试存储一个新的对象集合,以便在循环中移除,然后循环遍历该集合并从原始集合中删除对象.

这些工作正常,但感觉不好,我想知道是否有人提出了更优雅的解决方案

.net ienumerable design-patterns

13
推荐指数
2
解决办法
2万
查看次数

C#使用params和扩展方法

扩展方法中是否真的不支持params关键字?

我发现当我使用params关键字创建扩展方法时,我得到"没有重载的X方法需要2个参数".Intellisense识别扩展方法,甚至知道它需要一个对象数组.

这是一些示例代码:

public static DalRow EasyRetrieveSingle(this DalRow dalRow, object[] parameters) 
{
    Dictionary<string, object> dic = new Dictionary<string, object>();
    for (int i = 0; i < parameters.Length; i += 2)
        dic.Add(parameters[i].ToString(), parameters[i + 1]);

    List<DalRow> list = DalRow.RetrieveByFieldValues(dalRow.Structure, null, dic).Cast<DalRow>().ToList();
    if (list.Count == 0) return null;
    return list[0];
}
Run Code Online (Sandbox Code Playgroud)

这是一些调用它的示例代码(无济于事)

(new X()).EasyRetrieveSingle(1, 2);
Run Code Online (Sandbox Code Playgroud)

c# extension-methods

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