Tag:

带数字键的动态json对象

我有一个json对象,我在这个答案的帮助下转换为动态C#对象。 它工作得很好,但麻烦的是这个对象有数字键。 例如, var jsStr = “{address:{“100″: {…}}}”; 所以我不能这么做 dynObj.address.100 而且,据我所知,我不能使用索引器来获取这样的对象 dynObj.address[“100”] 请向我解释如何让这个工作。

C# – 检查是否按下了特定键

我是C#编程的新手。 我正在尝试检查按键是否按下,但是我收到以下错误消息:“错误1当前上下文中不存在名称’键盘’”“错误2当前上下文中不存在名称’Key’ “你能告诉我怎么修理它吗? //… using System.Windows.Input; class Main { public void Main() { while(true) { if(Keyboard.IsKeyPressed(Key.A)) { //… } return; } } }

如何将重复键添加到词典中

我有一些文本文件的行,我想添加到Dictionary.I我第一次使用字典。虽然添加起始行它是好的但突然我得到错误: 已添加具有相同键的项目 在我的代码中有重复的密钥,我无法更改。这是我在c#中的代码 Dictionary previousLines = new Dictionary { }; previousLines.Add(dialedno, line); dialedno是键,行是文本文件行。 这是我根据键检索给定行的代码。 string tansferOrginExt = previousLines[dialedno]; 所以我关心的是如果可能允许在Dictionary中添加重复键,如果不能,我怎么能获得类似的function。

如何以正确的方式使用KeyPressEvent

尝试为我的表单创建HotKeys 码 private void FormMain_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { MessageBox.Show(“e”); } } 适用于一个键,但如果我想使用像CTRL + N这样的键组合,请尝试使用if (e.KeyChar == (char)Keys.Enter && e.KeyChar == (char)Keys.N) – 但是它不起作用。 我是对的 – 使用这样的密钥组合代码? 编辑 此代码仅捕获第一个按键,但不是组合 – 所以如果我按CTRL + Enter – 代码捕获CTRL但不输入密钥 – 尝试创建额外的if但是 – 结果相同… 将事件从KeyPress更改为KeyDown – 现在它正常工作

在按键+鼠标上移动一个窗口(如linux ALT +鼠标向下)

很简单,我想移动一个按ALT + MOUSE的窗口,就像linux os(ALT +拖动)一样。 有可能将win32 api(移动api)传递到有兴趣点击它的窗口吗? 我有一个按下挂钩键的Windows服务(特定的ALT按钮)。 当按下ALT键并validation鼠标按下事件时,我想在任何地方移动窗口,而不仅仅是在标题栏上! 目前我以这种方式移动我的表单窗口: using System.Runtime.InteropServices; [DllImport( “user32.dll”, CharSet = CharSet.Auto, SetLastError = false )] static extern IntPtr SendMessage( IntPtr hWnd, uint Msg, int wParam, int lParam ); [DllImportAttribute( “user32.dll”, CharSet = CharSet.Auto, SetLastError = false )] public static extern bool ReleaseCapture(); private void Form1_MouseDown( object sender, MouseEventArgs e […]

C#WPF密钥持有

我有一个关键的问题。 当它只是关键时,一切都有效,但关键持有怎么办? 代码如下所示: private void Window_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down) { moveBall(3); } } 谢谢你的回复。

获取字典中最大的密钥

我有一个包含整数键的字典。 我想得到最大的钥匙。 我不跟踪密钥,因此它们可能是连续的(例如1,2,3,4,5,6),但可能会跳过(1,3,4,5),尽管我怀疑这有什么不同。 我只是使用二进制搜索还是有方法? 据我所知,你几乎无法击败二元搜索这么简单的任务 – 也许你可以把它减半。

将hashtable.Keys转换为List 或其他IEnumerable

我知道,我有其他选择,例如我可以维护一个单独的键列表。 请不要提出其他选择。 我只是想知道我是否可以解决这个问题。 请不要问我正在尝试解决的问题,或类似的问题。 这是一个纯粹而简单的CS问题。 我想知道是否有人知道从Hashtable获取密钥的方法并将它们转换为List或其他类型的IEnumerable (当然,我的密钥实际上是整数)。 鉴于我可以毫无问题地做到这一点: foreach (int key in hashtable.Keys) 为什么这会给我带来错误? (List)hashtable.Keys

检查键是否是字母/数字/特殊符号

我重写ProcessCmdKey ,当我得到Keys参数时,我想检查这些Keys是字母还是数字还是特殊符号。 我有这个片段 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { char key = (char)keyData; if(char.IsLetterOrDigit(key) { Console.WriteLine(key); } return base.ProcessCmdKey(ref msg, keyData); } 一切都适用于字母和数字。 但是当我按下F1-F12时,它会将它们转换成字母。 也许有人知道更好的方法来解决这个任务?

c#词典相交

我有关于Linq / Lambda的问题以及以下问题: 我有两个词典,主要和次要……这两个词典被定义为Key = string,Value = int。 如果KEYS与辅助字典相交,我需要修剪主字典。 即: primaryDict = [“thing1”, 33] [“thing2”, 24] [“thing3”, 21] [“thing4”, 17] [“thing5”, 12] secondaryDict = [“thing1”, 22] [“thing3”, 20] [“thing4”, 19] [“thing7”, 17] [“thing9”, 10] resultDict = [“thing1”, 33] [“thing3”, 21] [“thing4”, 17] 我的尝试: resultDict = primaryDict.Keys.Intersect(secondaryDict.Keys).ToDictionary(t => t.Key, t.Value); 这显然不起作用,因为primaryDict.Keys.Intersect返回一个键列表…我将如何重新建立一个新词典,或者配对主词典? 任何帮助,将不胜感激。