[Hyena] Add FormatInterleaved to StringUtil master
authorGabriel Burt <gabriel.burt@gmail.com>
Fri, 29 Oct 2010 20:53:07 +0000 (15:53 -0500)
committerGabriel Burt <gabriel.burt@gmail.com>
Fri, 29 Oct 2010 20:53:07 +0000 (15:53 -0500)
commitcf2809f7db9383cc8f4e91d7643e5674d8fdd5a7
tree7488123032e5c39d8fde60443696748920dfaa3a
parente971e91fe82b90ba2931ba3be8cf704dd0e016fe
[Hyena] Add FormatInterleaved to StringUtil

This lets you pass in a string format, and returns an enumerable of
the objects passed in interleaved where appropriate with substrings of
the format.  For example:

FormatInterLeave ("Use {0} threads", new SpinButton ())
 => "Use", spin_button, "threads"

If the format you pass in instead comes from Catalog.GetString, you now
can interleave widgets with internationalized labels:

var widgets = StringUtil.FormatInterleaved (
    Catalog.GetString ("Show only {0} episodes"), new_checkbox
).Select (o => (o as Widget) ?? new Label (o as string));
Hyena/Hyena/StringUtil.cs
Hyena/Hyena/Tests/StringUtilTests.cs