我有一个字符串,具有以下格式:
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吗?提前致谢.
我创建了一个新的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) 我使用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的限制,还是我可以做些什么?
我有一个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)
这是有效的,但它是一个高维护功能,因为每次我修改枚举列表,我必须重构该功能.有没有办法将枚举分割成一个字符串数组,获取下一个值并将字符串值转换为原始枚举?因此,如果我在数组的末尾,我只需抓住第一个索引
我们正在 Windows 环境中使用 RabbitMQ。目前我已经安装了 RabbitMQ 并且它作为服务运行。它会自动启动,如下所示:
但是如果我发送消息或者我在这里查询服务器:http://localhost:15672/#/queues服务器返回404
现在,如果我打开 Shell 并点击以下命令:
rabbitmq-server
Run Code Online (Sandbox Code Playgroud)
服务器启动后,我可以发送和接收消息并浏览管理页面。
问题:
我有一个具有以下结构的树视图:
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或递归函数来执行此操作.
我有一个带有以下签名的泛型方法:
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以将其作为泛型传递.我知道我可以使用反射调用方法,但我想知道是否有更好的方法来实现这一点.我可以更改数组结构,但不能更改方法签名.
我正在尝试使用powershell执行外部命令,而不需要弹出第二个程序,我需要在同一个PowerShell窗口中执行此程序并输出日志和错误.我从这开始:
$outcome = Start-Process -Wait -FilePath "cmd.exe" -ArgumentList "dir" -NoNewWindow 2>&1
$outcome
Run Code Online (Sandbox Code Playgroud)
但它没有按预期工作.我仍然看到新窗口弹出DOS并且根本没有关于输出,错误等的重定向.难道我做错了什么?
我们有一个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的正确语法是什么?
我正在实施服务总线并查看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)
在我的场景中,我不是在写一个发布者/订阅者,而是一个发送者/接收者.
c# ×3
linq ×2
android ×1
generics ×1
java ×1
masstransit ×1
msmq ×1
objective-c ×1
odata ×1
powershell ×1
rabbitmq ×1
recursion ×1
regex ×1
string ×1
xamarin ×1
xamarin.ios ×1
xcode ×1