小编Osk*_*kar的帖子

为什么ReadOnlyObservableCollection.CollectionChanged不公开?

为什么ReadOnlyObservableCollection.CollectionChanged受到保护而不是公开(如相应ObservableCollection.CollectionChanged的那样)?

INotifyCollectionChanged如果我无法访问该CollectionChanged事件,那么实现集合的用途是什么?

.net c# collections

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

使用IEnumerable.Intersect()交叉多个列表

我有一个列表列表,我想找到这样的交集:

var list1 = new List<int>() { 1, 2, 3 };
var list2 = new List<int>() { 2, 3, 4 };
var list3 = new List<int>() { 3, 4, 5 };
var listOfLists = new List<List<int>>() { list1, list2, list3 };

// expected intersection is List<int>() { 3 };
Run Code Online (Sandbox Code Playgroud)

有没有办法用IEnumerable.Intersect()做到这一点?

编辑:我应该更清楚这一点:我真的有一个列表列表,我不知道会有多少列表,上面的三个列表只是一个例子,我所拥有的实际上是一个 IEnumerable<IEnumerable<SomeClass>>

谢谢你的所有好评.事实证明,解决这个问题有四种选择:List +聚合(@Marcel Gosselin),List + foreach(@JaredPar,@ Gabe Moothart),HashSet +聚合(@jesperll)和HashSet + foreach(@Tony the Pony).我对这些解决方案进行了一些性能测试(不同数量的列表,每个列表中的元素数量随机数最大值. …

.net c# linq

76
推荐指数
5
解决办法
3万
查看次数

压缩xml文件的Subversion diff

我正在使用MySQL Workbench来维护应用程序的数据库架构..mwbWorkbench使用的文件(压缩的XML文档)保存在Subversion存储库中.

Subversion将文件视为二进制数据,因此我不能用于svn diff显示更改,例如在提交之前.

由于数据实际上是XML,我认为可能有一些方法可以显示差异,也许是一些先解压缩文件的脚本,或者是一些插件svn diff.

理想的解决方案将允许:

$ svn diff db-model.mwb
Run Code Online (Sandbox Code Playgroud)

甚至使用Meld:

$ meld db-model.mwb
Run Code Online (Sandbox Code Playgroud)

你能想到什么方法来实现这个目标?也许其他人有这个问题,在Subversion中显示存档文本文件的差异.

svn diff zip meld

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

从Source Safe导出

有没有办法从Source Safe导出文件/文件夹?(即摆脱所有.scc文件,就像SVN导出一样)

visual-sourcesafe export

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

C#中的单例类设计,这两个类是等价的吗?

我在C#上阅读了这个优秀资源的单例类设计,并决定选择其他4:

public sealed class Singleton1
{
    static readonly Singleton1 _instance = new Singleton1();

    static Singleton1()
    {
    }

    Singleton1()
    {
    }

    public static Singleton1 Instance
    {
        get
        {
            return _instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道是否可以使用这样的自动属性重写这个?

public sealed class Singleton2
{
    static Singleton2()
    {
        Instance = new Singleton2();
    }

    Singleton2()
    {
    }

    public static Singleton2 Instance { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

如果它只是一个可读性的问题我肯定更喜欢第二个版本,但我想要做对.

c# singleton refactoring design-patterns

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

使用ExpressionVisitor停止遍历

我正在使用ExpressionVisitor解析表达式树来查明它是否包含指定的参数.一旦找到参数,继续遍历是没有意义的.

是否有任何方法可以通过访问者模式停止遍历,更具体地说是ExpressionVisitor在.NET中?

这是我到目前为止所做的,它正如预期的那样工作.但是一旦布尔标志设置为true,就此算法而言,停止遍历是有意义的.

public class ExpressionContainsParameterVisitor : ExpressionVisitor
{
  private bool expressionContainsParameter_;
  private ParameterExpression parameter_;

  public bool Parse(Expression expression, ParameterExpression parameterExpression)
  {
    parameter_ = parameterExpression;
    expressionContainsParameter_ = false;

    Visit(expression);

    return expressionContainsParameter_;
  }

  protected override Expression VisitParameter(ParameterExpression node)
  {
    if (node == parameter_)
    {
      expressionContainsParameter_ = true;
    }

    return node;
  }
}
Run Code Online (Sandbox Code Playgroud)

.net c# expression-trees visitor-pattern expressionvisitor

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

如何使WPF图像无法使用?

我需要一个在禁用时灰显的图像(IsEnabled = False).通过将BitmapImage读入此处显示的FormatConvertedBitmap,可以生成图像的灰色版本.

我已经能够使用UserControl,但现在我想在专门的Image类中使用相同的行为以获得更大的灵活性.我不在乎这是在XAML,代码隐藏还是两者中实现,但它需要是Image的子类.

用法可能是:

<DisableableImage Source="Images/image1.png" />
<DisableableImage Source="Images/image1.png" IsEnabled="False" />

<!-- Since IsEnabled is inherited down the tree,
     the image will be grayed out like the rest of the button -->
<Button IsEnabled="False">
    <StackPanel Orientation="Horizontal">
        <TextBlock>OK</TextBlock>
        <DisableableImage Source="Images/ok.png" />
    </StackPanel>
</Button>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml image

3
推荐指数
2
解决办法
8218
查看次数

手动执行WPF路由命令

RoutedUICommand从代码隐藏手动执行自定义时,如下所示:

MyCommands.MyCommand.Execute(parameter, target)
Run Code Online (Sandbox Code Playgroud)

我需要先调用CanExecute方法还是已经在Execute方法中完成了?

c# wpf routed-commands

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

PowerShell ConvertFrom-Json 忽略顶级数组?

我正在尝试解析一个 JSON 数组,ConvertFrom-Json但如果它在顶层,PowerShell 似乎忽略了该数组。

例如,这意外地返回 count = 1:

'[{a:1},{b:2}]' | ConvertFrom-Json | measure
Run Code Online (Sandbox Code Playgroud)

但是当我将 JSON 数组放在一个对象中时,它似乎按预期进行了解析。这将返回计数 = 2

('{list:[{a:1},{b:2}]}' | ConvertFrom-Json).list | measure
Run Code Online (Sandbox Code Playgroud)

如果ConvertFrom-Json不适用于 JSON 数组,是否还有其他选择?

powershell json

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