public void OnReply(Tweet tweet, string screenName) { if (tweet == null) { return; } if (tweet.IsDirectMessage) { Compose.ShowDirectMessage(tweet.ScreenName); } else { var matches = new Regex(@"(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9_]+)") .Matches(tweet.Text); var names = matches .Cast <Match>() .Where(m => m.Groups[1].Value != tweet.ScreenName) .Where(m => m.Groups[1].Value != screenName) .Select(m => "@" + m.Groups[1].Value) .Distinct(); var replyTos = string.Join(" ", names); var message = string.Format("@{0} {1}{2}", tweet.ScreenName, replyTos, (replyTos.Length > 0) ? " " : ""); Compose.Show(message, tweet.StatusId); } }