如何解决C#如何编写此三元运算
# A tibble: 6 x 4
# Groups: group [2]
group vt ct tier
<chr> <chr> <chr> <chr>
1 A SO:0001574 tier_1 tier_1
2 A SO:0001619 tier_1 NA
3 A SO:0001619 tier_1 NA
4 B SO:0001619 tier_2 NA
5 B SO:0001619 tier_2 NA
6 B SO:0001821 tier_2 tier_2
我应该怎么写这一行?我只想打一次GetDati(id).Tables[0].Rows.count > 0 ? GetDati(id).Tables[0].Rows[0]: null;
。
解决方法
我只想调用功能GetDati 1次
然后仅调用一次并将结果存储在变量中。例如:
var dati = GetDati(id);
var result = dati.Tables[0].Rows.count > 0 ? dati.Tables[0].Rows[0]: null
,
您还可以在C#8中利用模式匹配:
var result = GetDati(id).Tables[0].Rows is var rows && rows.Count > 0 ? rows[0] : null;
is
引入了针对pattern的测试。 var
模式将始终成功,并将结果分配给rows
变量。
也就是说,我发现@David使用的版本更加清晰,但是我知道有些人更喜欢使用var
模式。
var rows = GetDati(id).Tables[0].Rows;
var result = rows.count > 0 ? rows[0]: null;
,
谢谢,但是如果我需要像这样在构造函数上调用它:
Public myclass(DataRoe dr):this(){
Do something
}
Public myclass(id):this(getdati(id).tables[0].rows[0]){}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。