в последнем примере
item => doSomething(item)
равнозначен простому doSomething — так что самый последний пример не совсем удачный.
Т.е. вопрос в том, как записать всё одним выражением в ситуации, когда нужно обратиться к свойствам item, например
item => item.someProperty = someValue
и при этом не указывать явно тип этого item (чтобы компилятор вывел его из типов item1, item2, item3, как во втором примере)?