小编Raf*_*aeu的帖子

发生字符串后删除文本

我有一个字符串,具有以下格式:

string sample = "A, ABC, 1, ACS,,"
Run Code Online (Sandbox Code Playgroud)

如您所见,该,角色有5个出现.我需要在第4次发生后删除所有内容,以便最终结果为:

string result = fx(sample, 4);
"A, ABC, 1, ACS"
Run Code Online (Sandbox Code Playgroud)

没有一个可能foreach吗?提前致谢.

c# regex linq string

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

Xcode 4.2,无法运行单元测试

我创建了一个新的Xcode 4.2 Cocoa项目,一个可可库.默认情况下,单元测试带有以下单元测试:

- (void)testExample
{
    STFail(@"Unit tests are not implemented yet in learning01Tests");
}
Run Code Online (Sandbox Code Playgroud)

如果我按⌘UI可以看到测试版并按预期失败.现在,我添加以下新行以测试我创建的外部类:

#import "svc01.h"

- (void)testMyClass
{
    svc01* svc = [[svc01 alloc]init];
    int expected = [svc addTwoNumbers:10 :10];
    STAssertTrue(21 == expected, @"It should fail!");
}
Run Code Online (Sandbox Code Playgroud)

我可以看到两个测试(默认和我的方法)按预期失败.问题是,有时候,即使我按下命令Test,它弹出消息"Build succe"然后"Test successful",但是如果我看输出控制台它会说"tests run 0"

我做错了吗?

UPDATE

现在我已经改变了我的测试方法的签名,它不再起作用了.我有这个:

#import <SenTestingKit/SenTestingKit.h>

@interface learning01Tests : SenTestCase
- (void)sumTwoIntegerShouldPass;
- (void)sumTwoZeroShouldThrow;

@end
- (void)sumTwoIntegerShouldPass
{
    svc01* svc = [[svc01 alloc]init];
    int expected = [svc addTwoNumbers:10 :10];
    STAssertTrue(20 == expected, @"It should fail!");
}

- …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c

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

Xamarin Android,自定义控件和Visual Studio设计器

我使用Visual Studio和C#在Xamarin中创建了一个自定义控件.Custom控件完美运行,代码非常简单:

[DesignTimeVisible(true)]
public class CustomTextView : TextView
{
    public CustomTextView(Context context)
        :base(context)
    {

    }

    public CustomTextView(Context context, IAttributeSet attrs)
        :base(context,attrs)
    {

    }

    public CustomTextView(IntPtr javaReference, JniHandleOwnership transfer)
        :base(javaReference, transfer)
    {

    }

    public CustomTextView(Context context, IAttributeSet attrs, int defStyle)
        :base(context, attrs, defStyle)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

问题是在设计时,xamarin设计师以下面的方式渲染控件,所以它对我来说变得无用,因为我无法理解它在运行时的外观. 在此输入图像描述

这是Visual Studio的Designer的限制,还是我可以做些什么?

c# android xamarin.ios xamarin

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

Java获取下一个枚举值或从第一个开始

我有一个Java的枚举如下:

public enum Cars
{
   Sport,
   SUV,
   Coupe
}
Run Code Online (Sandbox Code Playgroud)

我需要获得枚举的下一个值.所以,假设我有一个名为myCurrentCar的变量:

private Cars myCurrentCar = Cars.Sport;
Run Code Online (Sandbox Code Playgroud)

我需要创建一个函数,在调用时将myCurrentCar的值设置为枚举中的下一个值.如果枚举不再有值,我应该将变量设置为枚举的第一个值.我以这种方式开始实施:

public Cars GetNextCar(Cars e)
{
  switch(e)
  {
     case Sport:
       return SUV;
     case SUV:
       return Coupe;
     case Coupe:
       return Sport;
     default:
       throw new IndexOutOfRangeException();
  }
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它是一个高维护功能,因为每次我修改枚举列表,我必须重构该功能.有没有办法将枚举分割成一个字符串数组,获取下一个值并将字符串值转换为原始枚举?因此,如果我在数组的末尾,我只需抓住第一个索引

java

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

RabbitMQ Windows - 自动启动服务器

我们正在 Windows 环境中使用 RabbitMQ。目前我已经安装了 RabbitMQ 并且它作为服务运行。它会自动启动,如下所示:

在此处输入图片说明

但是如果我发送消息或者我在这里查询服务器:http://localhost:15672/#/queues服务器返回404

现在,如果我打开 Shell 并点击以下命令:

rabbitmq-server
Run Code Online (Sandbox Code Playgroud)

服务器启动后,我可以发送和接收消息并浏览管理页面。

问题:

  • 那么RabbitMQ Windows Service 和RabbitMQ Server 有什么区别呢?
  • 如何在 PC 启动时让 RabbitMQ Server 作为守护进程运行?有没有相关的命令或配置?

windows-services rabbitmq

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

从树中递归删除项目

我有一个具有以下结构的树视图:

var myTree = myRepository.GetTree();
Run Code Online (Sandbox Code Playgroud)

以这种方式构造对象文件夹的位置:

public class Folder
{
   public string Name { get; set; }
   public List<Folder> Folders { get; set; }
   public Folder Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

假设存储库正在向我返回类似这样的结构:

MyFolder
   -MyChild01
   -MyChild02
      -MySubChild01       
   -MyChild03
      -MySubChild02
Run Code Online (Sandbox Code Playgroud)

我需要以递归方式读取树中的所有项目,如果项目的名称包含"02",我必须从树中删除该项.所以最终的结果应该是:

MyFolder
   -MyChild01
   -MyChild03
Run Code Online (Sandbox Code Playgroud)

我想看看如何使用带有匿名委托的递归LINQ或递归函数来执行此操作.

linq recursion

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

调用泛型方法的Type数组

我有一个带有以下签名的泛型方法:

Broker.GetMessages<TType>();
Run Code Online (Sandbox Code Playgroud)

它可以通过以下方式使用:

IList<IEmailMessage> emails = Broker.GetMessages<IEmailMessage>();
Run Code Online (Sandbox Code Playgroud)

我需要为这个结构的数组中可用的一系列类型执行此方法:

var messageTypes = new [] { typeof(IEmailMessage), typeof(IFaxMessage) }
Run Code Online (Sandbox Code Playgroud)

我的最终结果应该是这样的:

foreach ( IMessage message in messageTypes)
{
   Broker.GetMessages<xxx>();
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何转换Type以将其作为泛型传递.我知道我可以使用反射调用方法,但我想知道是否有更好的方法来实现这一点.我可以更改数组结构,但不能更改方法签名.

c# generics

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

PowerShell在同一窗口中执行外部命令

我正在尝试使用powershell执行外部命令,而不需要弹出第二个程序,我需要在同一个PowerShell窗口中执行此程序并输出日志和错误.我从这开始:

$outcome = Start-Process -Wait -FilePath "cmd.exe" -ArgumentList "dir" -NoNewWindow 2>&1
$outcome
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.我仍然看到新窗口弹出DOS并且根本没有关于输出,错误等的重定向.难道我做错了什么?

powershell

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

OData V4包含和任何

我们有一个OData V4端点,具有以下结构.我们正在使用Entity Framework 6.1,OData V4和Web Api 2.2

http://api.com/odata/Companies
Run Code Online (Sandbox Code Playgroud)

如果我们想要获得地址,我们就像这样扩展

http://api.com/odata/Companies?$expand=Addresses
Run Code Online (Sandbox Code Playgroud)

如果我按城市过滤它很好

http://api.com/odata/Companies?$filter=Addresses/any(a:a/City eq 'New York')
Run Code Online (Sandbox Code Playgroud)

但是我们不能将Contains应用于过滤器.使用City属性实现Contains的正确语法是什么?

odata asp.net-web-api2

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

MassTransit仅发送

我正在实施服务总线并查看MassTransit.我的模式不是发布/订阅,而是发件人/接收器,其中接收器可以脱机并在以后重新联机.现在我开始编写测试来验证MassTransit是否使用以下代码成功传递了消息:

bus = ServiceBusFactory.New(sbc =>
{
    sbc.UseMsmq(
        cfg =>
        {
            cfg.Configurator.UseJsonSerializer();
            cfg.Configurator.ReceiveFrom("msmq://localhost/my_queue");
            cfg.VerifyMsmqConfiguration();
        });
});
Run Code Online (Sandbox Code Playgroud)

然后我抓住公共汽车并发布这样的消息:

bus.Publish<TMessage>(message);
Run Code Online (Sandbox Code Playgroud)

我可以从MSMQ中注意到,创建了两个队列并且发送了消息,导致Mass Transit没有引发任何错误,但我在队列容器中找不到任何消息. 在此输入图像描述

我究竟做错了什么?

更新 阅读Mass Transit新闻组我发现在发件人/收件人的情况下,接收器可以在以后的任何时间上线,可以使用以下代码发送消息:

bus.GetEndpoint(new Uri("msmq://localhost/my_queue")).Send<TMessage>(message);
Run Code Online (Sandbox Code Playgroud)

在我的场景中,我不是在写一个发布者/订阅者,而是一个发送者/接收者.

msmq masstransit

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