小编Jon*_*ono的帖子

在LINQ中排序和分组

我有一个字符串元组列表,说(P1,P2)

我想知道是否有一个LINQ语句,我可以按P1(按升序)分组,并让该组包含该组的所有P2值(按降序排列).

输入:("A","B"),("A","C"),("D","B")我想得到两组:"A"和"D"(in该组"A"包含"C"和"B"(按此顺序,每次),组"D"包含"B".

这是否可以使用内置的LINQ类,还是我需要迭代组并自行排序?

c# linq grouping

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

撤消删除ClearCase中的文件

我有一个ClearCase视图,包含一个文件夹和两个文件.我检查文件夹,删除文件并重新检查文件夹.我留下了一个文件夹和一个文件.有办法让我的文件回来吗?我正在使用标准的Windows工具套件,其中包括cleartool.

clearcase

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

WinForms消息循环无响应

我故意滥用Windows窗体应用程序中的消息循环,但我的"只是为了好玩"项目很快就超出了我的理解水平.当任务正在运行时,表单没有响应.是的,还有很多其他问题,但在我的情况下,我故意避免在另一个线程上工作(为了赢得对自己的赌注?)

我有一个在UI线程上运行(很多)短片时间的函数:get_IsComplete()检查任务是否完成; DoWork()循环从0到1000(只是为了让CPU保持温暖).该任务通过调用启动,control.BeginInvoke(new Action(ContinueWith), control);然后它(尾递归)调用自身直到完成,总是在UI线程上运行一小段工作.

public void ContinueWith(Control control)
{
    if (!IsComplete)
    {
        DoWork();
        OnNext(control);
        control.BeginInvoke(new Action(ContinueWith), control);
    }
    else
    {
        OnCompleted(control);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望应用程序处理其他事件(鼠标点击,控制重绘,表单移动等)但似乎我的调用比我想要的更优先.

有什么建议?

c# multithreading winforms

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

编写网络模拟器以获得乐趣

我想编写自己的网络模拟器,以获得乐趣和个人挑战.我希望学习新的编程技术,以及更多关于网络的知识.以前面向对象的尝试很快就结束了,但我最近下载并使用了微软的Axum(今天发布的新版本)以及他们的并发和协调运行时.由于我来自一个非常OO的主导背景,我以前从未听说过面向Actor的编程; 现在看来我已经把头埋在沙子中,直到Scala和F#给我带来了范例.

我的问题是:a)面向演员的编程比面向对象的编程更适合这项任务,如果是这样的话b)哪里是开始学习演员导向设计的好地方?

oop

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

将WPF窗口DataContext设置为RelativeSource Self

this如果我在构造函数中以及在XAML 中将Window 的 DataContext 设置为{Binding RelativeSource={RelativeSource Self}},那么我可以通过在代码隐藏的 Loaded 事件中放置一个断点来看到 DataContext 引用正确的对象实例(即 MainWindow)。但是,Window 的子元素 exampleButton 的 Command 绑定为 null。断言失败。

当我删除 XAML DataContext 设置(并且仅依赖于构造函数设置)时,exampleButton 的命令会正确使用 DataContext。

为什么 XAML 场景中 exampleButton 的 Command 绑定为 null?

主窗口.xaml

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Example"
        SizeToContent="WidthAndHeight"
        x:Name="mainWindow"
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
        Loaded="mainWindow_Loaded">
    <Button x:Name="exampleButton" Command="{Binding Path=ExampleCommand}" Content="Click"/>
</Window>
Run Code Online (Sandbox Code Playgroud)

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public ICommand ExampleCommand { get; }

    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
        ExampleCommand = new DelegateCommand(x …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

在 XAML 自动生成的文件中强制执行全局命名空间

我的问题与其他问题Enforce Global Namespace in XAML不同,因为我没有与封闭命名空间同名的类,但我想不出更合适的标题来区分这两者。

如果我的 XAML 对象的命名空间的任何部分也是另一个命名空间的根,则 Visual Studio 似乎更喜欢我的 XAML 对象的命名空间,这会表现为编译器错误。

这是一个示例,显示了我的命名空间的一部分WpfApp1.System.Views如何与 发生冲突global::System

<Window x:Class="WpfApp1.System.Views.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <!-- Amazing content goes here -->
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

错误窗格中显示了编译错误,并在以下部分obj/System/Views/MainWindow.g.i.cs下显示了一条波浪状的红色下划线:SystemSystem.Windows.Window

namespace WpfApp1.System.Views {
    public partial class MainWindow : System.Windows.Window {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,我的玩具示例只会阻止我在层次结构中的任何位置拥有System命名空间,但如果我在 XAML 中使用这些第三方组件之一,它也会阻止我拥有任何第三方名称(例如)。DevExpress

global::在不重命名我自己的命名空间(或引用的组件的命名空间)的情况下,我是否可以要求 Visual Studio在其生成的 XAML 代码中使用命名空间?

c# xaml visual-studio visual-studio-2017

5
推荐指数
0
解决办法
204
查看次数

最近没有关于MPI的书:它是否会死?

我从来没有使用过消息传递接口(MPI),但我听说过它的名字,最近才发布了Windows HPC Server.我快速浏览一下亚马逊,看看是否有任何书籍,但它们都是在7年或更久以前的日期.MPI仍然是新应用程序的有效技术选择,还是被其他分布式编程替代品(例如DataSynapse GridServer)取代?

因为它不是一个实现,而是一个标准,学习它的可能性(假设它没有死)将导致更好的分布式编程系统设计?还有什么我应该看的东西吗?

distributed cluster-computing mpi

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

Visual Studio 2010 Express中的WCF中的TransactionFlow

我正在尝试使用免费的Microsoft Visual Web Developer 2010 Express开始使用WCF中的事务.它为我提供了创建"WCF服务应用程序"的选项,但它似乎没有给我很多选项来托管它或配置不同的绑定.如果我F5项目我收到错误:

At least one operation on the 'Service' contract is configured with the TransactionFlowAttribute attribute set to Mandatory but the channel's binding 'BasicHttpBinding' is not configured with a TransactionFlowBindingElement. The TransactionFlowAttribute attribute set to Mandatory cannot be used without a TransactionFlowBindingElement.

我已经尝试在*/services/service/endpointweb.config中添加配置,但似乎只是被忽略了.我还尝试将默认启动应用程序更改为WcfSvcHost.exe,但此选项显示为灰色.我开始怀疑Express版本的一些失败,但我乐观地认为这只是我的笨蛋.有没有我需要学习的技巧,或者会在Visual Studio 2010的完整版本中出现,足以让我跨过这个障碍并进入下一个障碍?

谢谢!

wcf visual-web-developer visual-studio-2010

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

实体框架中的"它"是什么

请原谅我,如果以前曾经问过,但我的任何搜索中都没有出现"它".我有两个数据库表Person和Employee建模一个Table-per-Type(例如Employee is-a Person).在我的edmx设计器中,我定义了一个单独的实体Employee,它将每个列映射到它们各自的基础表(例如Name - > Person,Salary - > Employee).

"它"允许我在LINQ表达式中执行这样的操作:

context.Employees.Where("it.Name LIKE 'M%' AND it.Salary > 1234")
Run Code Online (Sandbox Code Playgroud)

是否有任何良好的链接解释我如何期望"它"的行为?我认为它不是一个通用的LINQ,它对Entity Framework有点具体.

编辑0:生成的ObjectContext的C#代码如下:

public partial class TestObjectContext : ObjectContext
{
  // lots of boilerplate removed for clarity

  public ObjectSet<Employee> Employees
  {
    get
    {
      if ((_Employees == null))
      {
        _Employees = base.CreateObjectSet<Employee>("Employees");
      }
      return _Employees;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

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

SQL Server无效的列名

如果我尝试执行以下代码,我会收到错误

消息207,级别16,状态1,行3无效的列名称"另一个".消息207,级别16,状态1,行4无效的列名称"另一个".

即使两个IF语句的谓词总是评估为false.

CREATE TABLE #Foo (Bar INT)
GO
IF (1=0)
BEGIN
    SELECT Another FROM #Foo
END
GO
IF (1=0)
BEGIN
    ALTER TABLE #Foo ADD Another INT
    SELECT Another FROM #Foo 
END
GO
DROP TABLE #Foo
Run Code Online (Sandbox Code Playgroud)

为了这个例子,这可能过于简化了; 实际上我需要做的是从列中选择值,但仅在列存在时才选择.如果它不存在,我不关心它.在驱使我提出这个问题的问题中,我的谓词就是这样的EXISTS (SELECT * FROM sys.columns WHERE object_id = @ID AND name = @Name).有没有办法实现这一点,而不诉诸我的敌人动态SQL?我知道我的SQL必须始终是格式良好的(即符合语法) - 即使是在一个从未执行过的块中 - 但我也大惊小怪,我也被迫在语义上也正确!

编辑: 虽然我不确定下面的代码增加了上面的代码,但它是问题的另一个例子.在这种情况下,我只想设置绝对值(绝对存在作为列)的值,其值为Maybe(可能存在为列)如果Maybe存在.

IF EXISTS (SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.TableName', 'U') AND name = 'Maybe')
BEGIN
    UPDATE dbo.TableName SET Definitely …
Run Code Online (Sandbox Code Playgroud)

sql t-sql ssms sql-server-2008

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