System
System.Collections.Generic
System.IO
System.Linq
System.Net
System.Text
The code is here, shared as via LinqPad's instant share feature.
System
System.Collections.Generic
System.IO
System.Linq
System.Net
System.Text

var v= sys.sp_who2().Tables[0].AsEnumerable();//.Dump("SP_WHO2");
var blockers = v
.Where(x=>x.Field("BlkBy") != " .")
.Select (x => x.Field("BlkBy")).Distinct();//.Dump("Blockers");
var blockerDetails = v
.Where (x =>blockers.Contains(x.Field("SPID")) ).Dump("Blockers");
var blockees = v.Where(x=> x.Field("BlkBy") != " .").Dump("Blockees");