小编Adi*_*ter的帖子

如何将通用字典转换为已知类型?

使用反射,我试图抓住一个类字段并填充它们.目前我有它检测a的实例Dictionary<,>并创建一个Dictionary<object,object>填充.之后它尝试更改类型,但这不起作用并且无法转换:

// Looping through properties. Info is this isntance.
// Check is a dictionary field.
Dictionary<object, object> newDictionary = new Dictionary<object, object>();

// Populating the dictionary here from file.
Type[] args = info.PropertyType.GetGenericArguments();
info.GetSetMethod().Invoke(data, new object[]
    {
        newDictionary.ToDictionary(k => Convert.ChangeType(k.Key, args[0]),
                                   k => Convert.ChangeType(k.Value, args[1]))
    });
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

c# reflection casting

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

传递键/值匿名对象作为参数

在mvc我可以使用这样的结构

@Html.TextAreaFor(model => model.iEventSummary, new { @class = "test" })
Run Code Online (Sandbox Code Playgroud)

我试图将其重现new { @class = "test" }为参数但未成功

testFunction( new {key1="value1", key2="value2", key3="" })

public static string testFunction(dynamic dict)
{
    string ret = string.Empty;
    IDictionary<string, string> dictionary = dict;
    foreach (var item in dictionary)
    {
        ret += item.Key + item.Value;
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

如何声明方法变量?如果我想传递new {key1="value1", key2="value2", key3="" }参数.

c# model-view-controller .net-4.0

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

ComboBox在值c#中加倍

我有以下代码:

private void nameTextBox_Leave(object sender, EventArgs e)
{                  
    var names = ConfigurationManager.AppSettings.AllKeys
                        .Where(k => k.StartsWith("name"))
                        .ToArray();

    // Add names to combobox
    comboBox.Items.AddRange(names);
}
Run Code Online (Sandbox Code Playgroud)

问题是每次我Tab从文本框按下,comboBox元素继续加倍.如果有Ken,John,Tim在那里,如果我再次按Tab键,它会显示两次.

我尝试在上面的名称中使用distinct,但是每次创建新的瞬时时都不会执行任何操作,并保存上一个.添加名称后,我无法将comboBox设置为空,因为它在代码中单击后面的按钮时使用.

我认为唯一的替代方法是声明一个全局变量,并确保其值为0,然后只在comboBox中插入值,并在插入值后将其更改为1.但这似乎不是一个好的编码实践.

有没有更好的方法来完成这项工作?

c# combobox

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

perl脚本中的perl内联编辑

我的perl脚本中有以下行(我从cshell运行)

system("perl -p -i -e 's/\+[a-z]+\+//g' $file1");
Run Code Online (Sandbox Code Playgroud)

我希望它删除所有被+加号包围的单词.相反,我收到以下错误消息.

量词在正则表达式中没有任何关系; 标记为< - HERE,m/+ < - HERE [az] ++/at -e line 1.

怎么了?我给反斜杠,为什么然后这个错误?

perl

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

如何在菜单项(WPF)中使用"&"

我不知道什么是"&"调用,但我想添加到这样的WPF菜单项,&Search所以当我们点击时Alt,"S"下会出现一个小行.

见下图:

在此输入图像描述

.net wpf hotkeys menubar menuitem

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

如何从C#Windows窗体中运行命令行代码?

我对编码很新,但已经构建了一些小东西.我在上一个项目中想到的一件事是如何运行通常从控制台运行的2个简单命令,而是从表单应用程序中运行.简单地说,表单有2个按钮,单击一个导致ipconfig运行,另一个ipconfig /all.然后它将来自命令的ip信息发布到我创建的另一个表单中作为消息框.这很重要,因为我正在尝试做类似的事情,现在没有任何工作.

我有一个表格,其中包含用户名和密码点.提交时,我希望它基本上运行以下内容:

NET USE F: \\ALPHA\CLIENTAPPS /user:domain\%username% %password% /persistent:no
NET USE O: \\ALPHA\USERS /user:domain\%username% %password% /persistent:no
NET USE S: \\ALPHA\COMPANY /user:domain\%username% %password% /persistent:no
Run Code Online (Sandbox Code Playgroud)

%username%%password%从形式和域捕获将成为我们的实际域.

使用与前面提到的ipconfig程序类似的方法,这就是我想出的.但是,当我单击"提交"按钮时,没有任何反应,没有错误,也没有实际创建网络共享:

private void btnSubmit_Click(object sender, EventArgs e)
{
    string un = txtUsername.Text;
    string pw = txtPassword.Text;

    System.Diagnostics.ProcessStartInfo PR = new System.Diagnostics.ProcessStartInfo("cmd", @" /c net use W: \\\\ALPHA\\CLIENTAPPS /user:acsdish\\" + un + " " + pw + "/persistent:no");
    PR.RedirectStandardOutput = true;
    PR.UseShellExecute = false;
    PR.CreateNoWindow = true;
    System.Diagnostics.Process …
Run Code Online (Sandbox Code Playgroud)

c# command-line winforms

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

循环时while(1)vs while(3)或任何数字

使用while循环时写入while(1)与任何其他数字相比意味着什么?

在我的计划while(1)中给我同样的答案while(3)

int num1;
int loopcount;

while(1) {
    printf("enter your positive number:");
    scanf("%d",&num1);
    if(num1>0) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

loops while-loop do-while

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

在返回好之前清算清单?

我正在使用C#,在某些方法中,我使用了几个数据库结果列表.这些可能非常大(每个约1000个对象的10个列表).目前,我只是从这些方法返回并让垃圾收集器清除它.如果在回来之前,我写TheList.Clear();这会有什么好处?

谢谢.

.net c# garbage-collection memory-management

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

我可以确定属性设置器是否是内部的?

我有一组属性,其中一些有privatesetter,其中一些有internalsetter.有没有办法在运行时我可以检查属性的setter是否是internal

.net c# access-modifiers

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

如何将简单的字符串值绑定到文本框?

我正在使用wpf.我想绑定一个文本框,其中包含在xaml.cs类中初始化的简单字符串类型值.在TextBox不显示任何.这是我的XAML代码:

<TextBox Grid.Column="1" Width="387" HorizontalAlignment="Left" Grid.ColumnSpan="2" Text="{Binding Path=Name2}"/>
Run Code Online (Sandbox Code Playgroud)

而C#代码是这样的:

public partial class EntitiesView : UserControl
{
    private string _name2;
    public string Name2
    {
        get { return _name2; }
        set { _name2 = "abcdef"; }
    }
    public EntitiesView()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml

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