完整的代码如下
if (CurrentThreadScheduler.Instance.ScheduleRequired)
{
CurrentThreadScheduler.Instance.Schedule(this, (_, me) => subscription.Disposable = me.Run(observer, subscription, s => sink.Disposable = s));
}
else
{
subscription.Disposable = this.Run(observer, subscription, s => sink.Disposable = s);
}
Run Code Online (Sandbox Code Playgroud) 我有班级的对象
public class Person
{
public string Error { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有些人有错误(没有姓名和年龄),有些人没有错误(姓名和年龄)
Person[] p1 = new Person[] { new Person { Error = "Error1" }, new Person { Name = "Name1", Age = 1 } };
Person[] p2 = p1
.Where(c => string.IsNullOrEmpty(c.Error))
.Select(
c => new Person { Name = c.Name, Age = c.Age }
).ToArray()
Union()
.Where(d => !string.IsNullOrEmpty(d.Error))
.Select(
d => …Run Code Online (Sandbox Code Playgroud) 以下方法实现了一个BiFunctiona Map<String,String>和一个值来搜索.它搜索的Entry在Map包含给定值,并返回相应的键.
这个实现有效,但是我想写一个没有return语句的lambda表达式,以使代码更优雅.
private BiFunction<Map<String, String>, String, String> findName = (m, s) -> {
Map.Entry<String, String> e =
m.entrySet()
.stream()
.filter(entry -> entry.getValue() != null && !entry.getValue().isEmpty() && entry.getValue().equals(s))
.findFirst()
.orElse(null);
return e != null ? e.getKey() : null;
};
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我在考虑这样的事情:
auto c = []() -> (int*) {int * b; b = new int(); b[0]=2; return b;};
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果cuestion非常愚蠢,但我不确定为什么会产生编译错误:
Run Code Online (Sandbox Code Playgroud)main.cpp:3:18: error: expected type-specifier before '(' token auto c = []() -> (int*) {int * b; b = new int(); b[0]=2; return b;};
我正在使用迭代列表的LINQ表达式执行查询,如下所示:
feedVideos.Add(vid.Where(f => f.UserName == friend.Friend_UserName).FirstOrDefault());
Run Code Online (Sandbox Code Playgroud)
如果没有任何对象,则此表达式将空值添加到列表中.我不知道这是不是正常的行为,但是如何在列表中没有任何对象时添加任何内容?
我有一个包含对象列表的对象列表,我想获得容器中的一个项目.这可能与lambda有关,还是只需要为循环嵌套?
这是我用于查找项目的当前方法:
for (Container c : containers) {
for (Item i : c.getItems() {
if (i.getKey().equals(key)) return i;
}
}
Run Code Online (Sandbox Code Playgroud) 写下面的内容有什么更好的方法?我可以使用Lambda表达式吗?
List<string> managerList = new List<string>();
foreach (Manager m in matchedManager)
{
managerList.Add(m.FullName);
}
Run Code Online (Sandbox Code Playgroud) 我的列有花费的小时值,如(10.30,1.45 ...)我想总结这些数字以获得总花费时间.例:
值11.11,0.50,0.59
总花费时间11和分钟总和(11 + 50 + 59)= 120分钟= 2小时
所以我的最终输出应该是11 + 2 = 13.00小时
但在我的c#查询中,我得到11.11 + 0.50 + 0.59 = 12.2这是错误的,因为我认为它是小时格式.
如何在不分割数字的情况下获得13.00小时的结果.
我试过了:
db.myTable.Where(t => t.is_deleted == false).Sum(t => t.time_spent)
Run Code Online (Sandbox Code Playgroud)
这给了我12.2但我想要13.00,因为我认为它是时间.
编辑:
我用了
List<string> hoursTemp1 = Model.tblName.Where(t => t.is_deleted == false).Select(p => p.time_spent.ToString()).ToList();
var total_effort_hr = new TimeSpan(hoursTemp1.Sum(x => TimeSpan.ParseExact(x, "h\\.mm", System.Globalization.CultureInfo.InvariantCulture).Ticks)).ToString(@"hh\:mm");
Run Code Online (Sandbox Code Playgroud)
但是现在我正在获得OverflowException for Hour值大于24且min值大于60
那么有人可以帮我解决这个错误并得到正确的结果吗?任何帮助都会被贬低.
在python 3中,这有效:
Celsius = [39.2, 45.2, 37.3, 37.8, 89]
Fahrenheit = map(lambda x: ((float(9/5))*x + 32).__round__(3), Celsius)
print(list(Fahrenheit))
[102.56, 113.36, 99.14, 100.04, 192.2]
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,为什么?:
Fahrenheit = map(lambda x: ((float(9/5))*x + 32).round(3), Celsius)
Run Code Online (Sandbox Code Playgroud)
此外,现在很多python脚本都不使用这种旧格式__round__,我认为这样可以使脚本看起来更干净.还有其他核心原因吗?