0
바이트 버퍼 Encoding.UTF8.GetString(b.Buffer)
의 문자열 표현은 "Foo : Foo1"입니다.버퍼 문자열을 한 번만 전달할 수있는 방법이 있습니까? 정규식 검사
문자열을 Regex에 대해 구문 분석하고 RemoteData
클래스의 다른 두 속성 (Message1
및 Message2
)으로 바인딩하고 싶습니다.
public class RemoteData
{
private string _message1;
private string _message2;
public RemoteData(string Message1, string Message2)
{
this.Message1 = Message1;
this.Message2 = Message2;
}
public string Message1
{
get
{
if (IsValidMessage(_message1))
return _message1 = _message1.Split(':')[0].ToString();
return _message1;
}
set
{
_message1 = value;
}
}
public string Message2
{
get
{
if (IsValidMessage(_message2))
return _message2 = _message2.Split(':')[1].ToString();
return _message2;
}
set
{
_message2 = value;
}
}
private static bool IsValidMessage(string value)
{
const string expression = (@"([\w]+):([\w]+)");
return Regex.IsMatch(value, expression, RegexOptions.IgnoreCase);
}
}
나는 클래스 RemoteData
의 IObservable
을 반환하고 코드 아래에 좋은 노력하고 있습니다.
public static IObservable<RemoteData> UdpStream(IPEndPoint endpoint)
{
return Observable.Using(() => new UdpClient(endpoint),
udpClient => Observable.Defer(() =>
udpClient.ReceiveAsync().ToObservable()).Repeat().Select(b => new RemoteData(Encoding.UTF8.GetString(b.Buffer), Encoding.UTF8.GetString(b.Buffer))));
}
질문 :
- 내가
Observable
선택에 한 번만Encoding.UTF8.GetString(b.Buffer)
를 전달할 수있는 방법이 있습니까? - 한 번만 정규식 검사를 수행하고 문자열을 변환하고
RemoteData
클래스의 다양한 속성에 할당해야합니까?
고마워요!