Tag: 语法

LINQ:根据Column-Value选择重复的行

我试图在我的DataGrid中显示那些共享相同列值的行。 例如,对于拥有相同姓氏的人,我试过这个: dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => grp.Key); 这似乎是有效的,因为我的WPF DataGrid在此命令之后包含行…最终它只显示空行,因为没有列填充值。 或者我和拥有相同城市的人员一起尝试: dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.City).Where(grp => grp.Count() > 1).Select(grp => grp.Key).Select(a => a); 有没有正确的方法来做到这一点?

什么部分意味着什么?

public partial class Form1 : Form 本声明中的部分内容是什么意思? 我知道我们有一个inheritance自Form的Form1。 但部分意味着什么呢?

MongoDb C#GeoNear查询构建

如何使用C#驱动程序和GeoNear方法在MongoDB中查询附近的地理点? 以下返回具有错误距离值的点: var results = myCollection.GeoNear( Query.GT(“ExpiresOn”, now), // only recent values latitude, longitude, 20 ); 我怀疑我应该告诉Mongo查询double [] Location字段,但我不知道查询语法。

C#中“()=>”是什么意思?

在综合申请指南中涉及以下内容。 我知道=>是一个lambda但是()是什么意思? 还有其他一些例子吗? 它叫什么,所以我可以搜索它? this.regionViewRegistry.RegisterViewWithRegion(RegionNames.SelectionRegion , () => this.container.Resolve().View);

我不喜欢这个……这是欺骗语言吗?

我已经看过几次以下的东西……而且我讨厌它。 这基本上是“欺骗”语言吗? 或者..你会认为这是’ok’,因为IsNullOrEmpty会一直被评估吗? (我们可以争论一个字符串在出现函数时是否应该为NULL,但这不是问题。) string someString; someString = MagicFunction(); if (!string.IsNullOrEmpty(someString) && someString.Length > 3) { // normal string, do whatever } else { // On a NULL string, it drops to here, because first evaluation of IsNullOrEmpty fails // However, the Length function, if used by itself, would throw an exception. } 编辑:再次感谢大家提醒我这种语言的基础。 虽然我知道“为什么”它起作用,但我无法相信我不知道/记住这个概念的名称。 […]

如何故意忽略返回值

在某些使用C / C ++的情况下,我可以在语法上向编译器指示故意忽略返回值: int SomeOperation() { // Do the operation return report_id; } int main() { // We execute the operation, but in this particular context we // have no use of the report id returned. (void)SomeOperation(); } 我觉得这是一个公平的做法,首先是因为大多数编译器不会在这里产生警告,其次是因为它向未来的开发人员明确表明作者有意识地选择忽略回报。 它使作者的思想痕迹不含糊。 据我所知,C#编译器不会抱怨隐式忽略返回值,但我想知道是否有类似的约定用于向其他开发人员明确指示。 回答这里的一些人质疑这个约定的实际使用(或者它会显示糟糕的设计以使方法具有潜在的不重要的返回值)。 一个真实的.NET示例(我可能应该从一开始就基于问题)是Mutex::WaitOne()重载,它不带参数。 只有在安全获取互斥锁时它才会返回,否则它永远不会返回。 布尔返回值是针对其他重载的,您可能在返回时最终没有拥有互斥锁。 所以在我的推理中,我想在我的multithreading代码中指出我已经选择忽略返回: Mutex mtx = new Mutex(); (void)mtx.WaitOne(); 因为返回值永远不会是true 。

在Linq中安全地解除引用FirstOrDefault调用c#

为了简洁起见,在我的代码中,我希望能够执行以下操作:拥有一个集合,找到匹配lambda表达式的第一个元素; 如果存在,则返回属性或函数的值。 如果它不存在,则返回null。 更新的例子w。 类 让我们收集一些东西 class Stuff { public int Id { get; set; } public string Value { get; set; } public DateTime? ExecutionTime { get; set; } } 我的目标是在调用它时很好地返回 var list = new Stuff[] { new Stuff() { Id = 1, Value = “label”, ExecutionTime = DateTime.Now } }; // would return […]

如何使内联数组初始化工作,如字典初始化?

为什么可以像这样初始化Dictionary : var dict = new Dictionary() { { “key1”, 1 }, { “key2”, 2 } }; …但是不要以完全相同的方式初始化KeyValuePair对象的数组: var kvps = new KeyValuePair[] { { “key1”, 1 }, { “key2”, 2 } }; // compiler error: “Array initializers can only be used in a variable // or field initializer. Try using a new expression instead.” […]

将嵌套的for循环转换为单个LINQ语句

有人可以帮我把这个嵌套结构变成一个LINQ语句吗? EventLog[] logs = EventLog.GetEventLogs(); for (int i = 0; i < logs.Length; i++) { if (logs[i].LogDisplayName.Equals("AAA")) { for (int j = 0; j < logs[i].Entries.Count; j++) { if (logs[i].Entries[j].Source.Equals("BBB")) { remoteAccessLogs.Add(logs[i].Entries[j]); } } } }

什么是隐含的generics类型参数

所以,我遇到了Servy( https://stackoverflow.com/a/15098242/496680 )的答案,他的一些代码执行了此操作: public static int BinarySearch(…) 对于扩展方法,但他称之为: arr.BinarySearch(…) 我四处询问,有人提到它是一个隐含的generics类型参数。 我用谷歌搜索了他们,但没有找到关于他们的信息。 我理解generics如何工作,但我无法理解如何/何时使用这些。 为什么servy在他的扩展方法中使用它们? 我可以搜索这些更正式的名称吗?