小编Mah*_*amy的帖子

扩展LINQ以接受可以为空的枚举

在使用Linq扩展时,看到这样的代码是正常的:

IEnumerable<int> enumerable = GetEnumerable();
int sum = 0;
if (enumerable != null)
{
    sum = enumerable.Sum();
}
Run Code Online (Sandbox Code Playgroud)

为了提高代码质量,我编写了以下扩展方法来检查可以为空的枚举并打破linq执行.

public static IEnumerable<T> IgnoreIfEmpty<T>(this IEnumerable<T> enumerable)
{
    if (enumerable == null) yield break;
    foreach (var item in enumerable)
    {
        yield return item;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,我可以重构代码,如下所示:

var sum = GetEnumerable().IgnoreIfEmpty().Sum();
Run Code Online (Sandbox Code Playgroud)

我现在的问题:

  1. 在运行时我的扩展方法有哪些惩罚?
  2. 以这种方式扩展linq是一个好习惯吗?

更新: 我的目标框架是:3.5

.net c# linq

40
推荐指数
3
解决办法
1588
查看次数

根据XAML中的值显示图像

如何根据XAML中的值显示图像?

我有性别枚举

[DataContract(Name = "Gender")]
public enum GenderEnum
{
    [EnumMember] NotSpecified,
    [EnumMember] Male,
    [EnumMember] Female,
}
Run Code Online (Sandbox Code Playgroud)

在我的Model类中,我有一个名为"Gender"的枚举类型的属性.现在我想通过XAML端显示基于"Gender"值的图像.

c# wpf

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

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

p4merge 和 Git 1.8.3

我如何配置gitp4merge用作我的mergetool

接下来是我现在的情况:

$ git --version
git version 1.8.3.msysgit.0

$ git mergetool

This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
No known merge tool is available.
Run Code Online (Sandbox Code Playgroud)

git mergetool p4merge

9
推荐指数
2
解决办法
6935
查看次数

如何在Azure Web角色上禁用RC4密码

我有一个托管在Microsoft Azure Web角色上的Web应用程序.如何禁用RC4密码?

ssl azure ssl-certificate azure-web-roles

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

Azure可用性集与亲和性组

我对何时使用Azure可用性集以及何时使用Azure Affinity Group感到有点困惑.

azure

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

显示隐藏的WPF窗口

在WPF窗口中我想隐藏它,显示另一个窗口ShowDialog然后取消隐藏第一个窗口.


当我这样做时:

this.Hide();
var window2 = new Window2();
window2.ShowDialog();
this.Show();
Run Code Online (Sandbox Code Playgroud)

第一个窗口打开为空白窗口.

这种技术有什么问题?


当我这样做时:

var window2 = new Window2();
Visibility = Visibility.Collapsed;
window2.ShowDialog();
Visibility = Visibility.Visible;
Run Code Online (Sandbox Code Playgroud)

第一个窗口退出应用程序.

这种技术也有什么问题?

c# wpf

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

缺少Microsoft.WindowsAzure.Diagnostics程序集

我的WebRole尝试启动时出现以下异常:

{"无法加载文件或程序集'Microsoft.WindowsAzure.Diagnostics,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.找到的程序集的清单定义与程序集引用不匹配.(例外情况HRESULT:0x80131040)":"Microsoft.WindowsAzure.Diagnostics,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"}

我将Visual Studio 2012与Azure SDK 2.1一起使用

.net c# azure azure-web-roles

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

WPF DataGrid风格

我有一个具有以下样式的DataGrid

<Style x:Key="DataGridRowStyle1" TargetType="{x:Type DataGridRow}">
    <Setter Property="Foreground" Value="#FFB3B3B3"/>
    <Setter Property="Height" Value="25"/>
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    <Setter Property="Template" Value="{DynamicResource DataGridRowControlTemplate1}"/>
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="#FF262626"/>
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
            <Setter Property="Background" Value="#FF383838"/>
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
            <Setter Property="Background" Value="#FF333333"/>
        </Trigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此输入图像描述

当DataGrid失去焦点时出现我的问题:

在此输入图像描述

如何使其外观独立于焦点?

c# wpf datagrid

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

联合和文本有什么区别?

在 git repo 的根目录下有一个 .gitattributes 文件。该文件包含以下值:

*.txt     text merge=text
*.py      text merge=union
Run Code Online (Sandbox Code Playgroud)

merge=text 和 merge=union 有什么区别

git

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

标签 统计

c# ×5

azure ×4

wpf ×3

.net ×2

azure-web-roles ×2

git ×2

asp.net ×1

datagrid ×1

iis ×1

linq ×1

mergetool ×1

p4merge ×1

security ×1

ssl ×1

ssl-certificate ×1