Random Random - 9 months ago 26
C# Question

Does C# 7 allow to deconstruct tuples in linq expressions

I'm trying to deconstruct a tuple inside a Linq expression

// somewhere inside another method
var result = from word in words
let (original, translation) = Convert(word)
select original

Here is a signature of the method returning a tuple

(string Original, string Translation) Convert(DictionaryWord word)
// implementation

But it's not a valid syntax. I can only access tuple values without deconstruction:

var result = from word in words
let result = GetWord(word, mode)
select result.Original

Is there a proper way to deconstruct it or it's not supported inside Linq expressions?

Answer Source

It seems not.

There's an open issue for this on GitHub: https://github.com/dotnet/roslyn/issues/6877