using System.Collections.Generic;
public static void Main()
var values = new List<string> { "Fizz", "Buzz" };
List<string> valuesNull = null;
string actionOutput1 = null;
string actionOutput2 = null;
string result1 = values.IfNotNull(x => x.First(), "FizzBuzz");
string result2 = valuesNull.IfNotNull(x => x.First(), "FizzBuzz");
string result3 = valuesNull.IfNotNull(x => x.First(), () => "FizzBuzz");
values.IfNotNull(x => actionOutput1 = string.Join("", values));
valuesNull.IfNotNull(x => actionOutput2 = string.Join("", values));
Console.WriteLine(result1);
Console.WriteLine(result2);
Console.WriteLine(result3);
Console.WriteLine(actionOutput1);
Console.WriteLine(actionOutput2);