我正在检查日语字符串的空格并用"_"替换它们.这就是我在做的事情:
string input1="abc dfg";
string input2="????";
if(input1.Contains(" "))
{
Console.WriteLine(input1.Replace(" ","_"));
}
Console.WriteLine("------------------");
if(input2.Contains(" "))
{
Console.WriteLine(input2.Replace(" ","_"));
}
Run Code Online (Sandbox Code Playgroud)
这是此代码的输出
abc__dfg
------------------
Run Code Online (Sandbox Code Playgroud)
它在简单的英文字符串中用"_"替换空格,但在日语字符串中则不是.
是否有LINQ方法来确定是否,例如:
List<int> micro = new List<int>(){1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)
在...
List<List<int>> macro = new List<List<int>>();
Run Code Online (Sandbox Code Playgroud)
?
我可以foreach在宏上做一个循环并检查它是否包含至少一个包含List所有微项的东西(macro[0].Contains(1) && macro[0].Contains(2)...),但是有更多的C#方法吗?
以下是我的代码:
class Program {
static List<int> MyList;
static void Main(string[] args) {
MyList = new List<int>() { 1,24,56,7};
var sn = FilterWithYield();
}
static IEnumerable<int> FilterWithYield() {
foreach (int i in MyList) {
if (i > 3)
yield return i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在FilterWithYield方法中有一个突破点,但它根本没有达到突破点.我在调用点有一个中断,即 var sn = FilterWithYield();Control点击此点并在调试窗口中正确显示结果.但是为什么控制不在FilterWithYield方法中停止?
还有一个问题.我读到yield将数据返回给调用者.如果将FilterWithYield方法的返回类型更改为通过错误将其返回到int,那么yield关键字是否总是需要IEnumerable<T>作为返回类型?
我希望我不会为这个问题得到大量的downvotes,但我想知道是否有办法使用实际的类名,而不调用属性来获取和设置值.例如,如果我有:
class Perfume
{
private string _aroma;
public string Aroma
{
set
{
_aroma = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有办法吗?
Perfume perfume = new Perfume();
perfume = "Aroma"; // which will set _aroma to "Aroma";
Run Code Online (Sandbox Code Playgroud)
?
不确定我做错了什么:
private at = "0";
public string AT
{
get
{
return aT;
}
set
{
aT = value;
this.RaiseAndSetIfChanged(ref aT, value);
}
}
Run Code Online (Sandbox Code Playgroud)
使用ViewModel进行设置AT = "Something",调用Raise并最初设置View.但是,当AT被连续调用(每秒至少一次更新)时,在初始设置(aT的原始值)之后不会更新
this.WhenAnyValue(x => x.ViewModel.AT).Subscribe(x => Debug.WriteLine("Change in AT:" + x)); // using this to debug
Run Code Online (Sandbox Code Playgroud)
似乎有效的一段时间是这样的:
set
{
aT = value;
this.RaisePropertyChanged();
}
Run Code Online (Sandbox Code Playgroud)
但是,在成功获得一个值(除了初始设置)之后,它崩溃了!我究竟做错了什么?
编辑:
在异步事件处理程序中更改此属性.在断点时,每次都会更改属性.这种情况大约每秒1次:
private async void ValueChanged(Something sender, SomeArgs args)
{
//Computation code here
AT= string.Format("{0:0.0####}", ATOrigin);
// Property is set - I checked
// More code here
}
Run Code Online (Sandbox Code Playgroud)