Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq TypeScript三元运算符-是否可以在不复制代码的情况下将条件重新用作第一个表达式?_Typescript_Linq - Fatal编程技术网

Linq TypeScript三元运算符-是否可以在不复制代码的情况下将条件重新用作第一个表达式?

Linq TypeScript三元运算符-是否可以在不复制代码的情况下将条件重新用作第一个表达式?,typescript,linq,Typescript,Linq,我的问题很简单,我搜索了StackOverflow、StackExchange+以及其他一些网站,试图找到答案,但结果有点短 这是关于Linq三元表达式的,即 Condition ? Expression1 : Expression2; 本质上,我可以将Linq三元表达式的条件重新用作第一个返回的表达式吗?这可能吗 我之所以想这样做,是因为我有一个非常长的Linq三元表达式,它在代码中跨越了3行,扩展了183个字符。它如此长的主要原因是因为一些字符串和变量名 我的代码摘要如下: 或 我考虑过的

我的问题很简单,我搜索了StackOverflow、StackExchange+以及其他一些网站,试图找到答案,但结果有点短

这是关于Linq三元表达式的,即

Condition ? Expression1 : Expression2;
本质上,我可以将Linq三元表达式的条件重新用作第一个返回的表达式吗?这可能吗

我之所以想这样做,是因为我有一个非常长的Linq三元表达式,它在代码中跨越了3行,扩展了183个字符。它如此长的主要原因是因为一些字符串和变量名

我的代码摘要如下:

我考虑过的几个解决方案是:

将array.findx=>x.key==EXAMPLE\u key\u NAME部分存储在一个变量中以供以后参考 使用If语句 我决定不使用这两种方法,因为它们会增加页面上物理代码的数量方面的额外开销

我想归根结底是这样的事情存在吗?这是初始条件

var x = array.find(x => x.key == "EXAMPLE_KEY_NAME") ? this : null;
它也可用于我在对象中存储的特定值之后的上下文:

var x = array.find(x => x.key == "EXAMPLE_KEY_NAME") ? this.value : null;

这是我第一次问问题,虽然我已经回答了很多问题,所以请随时提供建设性的反馈或向我指出文档阅读的方向

您可以使用可选的链接和| |运算符:

 var x = array.find(x => x.key == "EXAMPLE_KEY_NAME")?.value || null;

var x=array.findx=>x.key==EXAMPLE_key_NAME|null;啊,这是一个巧妙的把戏!我已经更新了我的问题,因为我问的还有另一个原因——这个评论并不能完全解决这个问题。如果你能读一读,我将不胜感激!谢谢您可以使用可选的链接:var x=array.findx=>x.key==EXAMPLE_key_NAME?.value|null;太神了谢谢你!如果你想把它作为一个答案发布,我会非常高兴地将其标记为已接受的答案!对我来说,我使用的是TypeScript3.0.1,这是在TS3.7中引入的,但不管怎样,一旦我更新了它,它会工作得很好。
var x = array.find(x => x.key == "EXAMPLE_KEY_NAME") ? this.value : null;
 var x = array.find(x => x.key == "EXAMPLE_KEY_NAME")?.value || null;