小编bil*_*llb的帖子

String比较null和empty相等的位置

使用C#和.NET 3.5,处理这种情况的最佳方法是什么.我有数百个字段可以从各种来源(主要是字符串)进行比较.有时,源将字符串字段返回为null,有时为空.当然,有时字段中会有文字.我当前对strA!= strB的比较并没有削减它,因为例如strA为null且strB为"".我知道我可以做string.IsNullOrEmpty导致双重比较和一些丑陋.有没有更好的方法来处理这个?我认为扩展方法,但你不能扩展运算符.

我想我正在寻找一种性感的方式来做到这一点.

c#

42
推荐指数
4
解决办法
5万
查看次数

如何使用Visual Studio Tools for Git v0.8.5.1 git stash

我对命令行感到满意,但我想知道是否有可能(如果是这样,如何)使用Visual Studio Tools for Git进行git存储.

git visual-studio-2012

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

Silverlight 3是否会更改MVC与Silverlight的问题?

我即将开始一个新项目并调查是否使用MVC,Silverlight或两者.Silverlight与ASP.NET MVC这个问题是一个很好的起点.但是看看SL3测试版,看起来有两件事情会改变一下.首先,导航功能是Silverlight的直接功能,现在有.NET RIA服务.虽然它实际上不是Silverlight的一部分,但它相当集成,似乎弥合了客户端和服务器操作之间的差距.在我看来,MVC很强大的领域和Silverlight(作为客户端技术)并非如此.我知道你仍然可以使用两者,但是你应该为什么?

silverlight asp.net-mvc silverlight-3.0

8
推荐指数
2
解决办法
5662
查看次数

通常使用MVVM和Silverlight进行"等待"屏幕的首选方法

我正在进行一个小概念验证应用程序.这主要是为了增强Silverlight中的MVVM技能.我今天遇到了一个有趣的问题,我无法想出如何解决MVVM方式.我也没有成功地在搜索过程中发现任何相关内容.

所以在这个问题上,我有一个带有数据库后端的简单业务类型应用程序.我有一个登录视图和一个附加的视图模型,它将执行登录并报告成功或失败.没问题.我还没有满意的是向用户报告等待屏幕的方法.因此,在我的登录屏幕上,用户单击"登录",数据库聊天完成后会有几秒钟的延迟.我想报告此情况并禁用任何互动,直到呼叫完成.

我有几个想法.首先,将Cursor属性绑定到viewmodel,VM可以将IsBusy属性设置为true.问题是我似乎无法绑定到UserControl的Cursor(Visual Studio说AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR).

第二个想法是有一个等待屏幕.你知道,小齿轮转动或你想要的任何动画.这很好,但我不清楚如何通过Xaml让视图通过模型切换.我知道我绝对可以挂钩事件并在代码中处理它.也许这是要走的路?似乎只是反对MVVM粒度.

会对如何处理这个问题的更多想法感兴趣.

谢谢.

silverlight mvvm

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

C#4.0动态Office互操作性能

我采用了在Visual Studio 2008中开发的应用程序,并通过COM Interop使用了各种Office库.我使用动态关键字和Visual Studio 2010开始了一些概念开发的证明.我发现执行相同的任务使用动态比使用"旧"方式慢大约5-10倍.有没有其他人经历过这种性能下降?这是已知还是我应该找到报告方式?

dynamic visual-studio-2010 office-interop

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

Blazor WASM 独立调试停止工作

过去几个月我一直在 vscode 中开发 blazor wasm 应用程序,没有发生任何事件。突然间,我无法再通过 F5 进行调试了。我实际上是从一个全新的应用程序(dotnet new blazorwasm)开始的,当我按 F5 时,出现以下错误:

无法启动浏览器:“无效的 URL:未定义/devtools/browser/ba94ae08-928a-4a92-a026-38c7682bbad6”

我已经卸载/重新安装了 vscode、chrome、更新了 .net core 5,尝试使用 Edge 将一些东西放入我的 launch 和 launchsettings.json 中,这些东西对其他人有帮助,还有很多我不记得的其他东西。甚至在我的计算机上创建了一个新帐户以消除可能的插件或设置,同样的问题。

确实有效的一件事是我可以使用从命令行运行 Chrome 的旧方法进行调试: open /Applications/Google\ Chrome.app --args --remote-debugging-port=9222

然后,您可以在 Chrome 中按 Cmd+Shift+D 开始在 Chrome 中进行调试。这是一个权宜之计,但我真的很想弄清楚它是如何/为什么停止工作的。

我创建了在我的机器上重现它的存储库。

我没有找到很多方法来收集可以帮助我确定原因的诊断详细信息,因此我将不胜感激任何可以帮助我解决此问题的提示。

使用最新的chrome和vscode,甚至尝试了内部构建。没有运气。我不确定我做了什么或如何解决它。任何帮助是极大的赞赏!

visual-studio-code vscode-debugger blazor-webassembly

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

Linq Combine Fields

只是想查看是否有更优雅的方法来使用Linq完成此任务.为简洁起见,我大大简化了代码.我会在一分钟内介绍我的理由,但它是这样的:

(from t in doc.Descendants(p + "Task")
where t.Element(p + "Name") != null
select new {
     FirstName = t.FirstName,
     LastName = t.LastName,
     FullName = FirstName + " " + LastName  // Error!
}
Run Code Online (Sandbox Code Playgroud)

是的,我知道执行FullName = t.FirstName +""+ t.LastName会很简单,但让我们想象一下,FirstName和LastName是大丑的内联计算,而不是简单的变量.所以FullName = [大难看的计算1] + [大难看的计算2].因此,根据DRY的精神,有没有更好的方法可以做到这一点?我的第一个想法是编写一个给我FirstName和LastName的函数.但还有更好的东西吗?

c# linq

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

Linq回归过滤的孩子

我有一个"呃"的时刻,这似乎应该是直截了当的,但我似乎无法做到正确.我有一个简单的集合:

Category Name
   ---> List<Category>  (Children of this category)
Run Code Online (Sandbox Code Playgroud)

我希望用户能够在维护层次结构的同时基于Category.Name进行过滤.所以举个例子.

My Category
  ---> Category.Name, "ABC"
  ---> Category.Name, "123"
  ---> Category.Name, "CDE"
Run Code Online (Sandbox Code Playgroud)

如果用户键入C,则应返回过滤器

My Category
  ---> Category.Name, "ABC"
  ---> Category.Name, "CDE"
Run Code Online (Sandbox Code Playgroud)

到目前为止我的尝试一直是

var v = vm.CategoryList
        .Where(p => p.CategoryItems.Any(q => q.Name.Contains(SearchText)));
Run Code Online (Sandbox Code Playgroud)

这将过滤并返回包含与过滤器匹配的类别项的所有类别名称,但我仍然获得未过滤的整个子类别列表.我错过了什么?

c# linq collections filter

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