Сортировка IList в C#

если вы хотите переопределить метод, используйте ключевое слово abstract

public abstract class AlertDialogActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_alert_dialog);
    showAlertDialog(AlertDialogActivity.this);
}

  public abstract void showAlertDialog(final Context context) {

    // 1. Instantiate an <code><a href="/reference/android/app/AlertDialog.Builder.html">AlertDialog.Builder</a></code> with its constructor
    AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this);

  // 2. Chain together various setter methods to set the dialog characteristics
    builder.setMessage("How are you?")
            .setTitle("Hello");

   // 3. Get the <code><a 
  href="/reference/android/app/AlertDialog.html">AlertDialog</a></code> from <code><a 
  href="/reference/android/app/AlertDialog.Builder.html#create()">create()</a></code>
    AlertDialog dialog = builder.create();
    dialog.show();


}
85
задан lomaxx 19 August 2008 в 01:23
поделиться

3 ответа

Это выглядит НАМНОГО БОЛЕЕ ПРОСТЫМ, если Вы спрашиваете меня. Это работает ОТЛИЧНО на меня.

Вы могли использовать Бросок () для изменения, он к IList тогда использует OrderBy ():

    var ordered = theIList.Cast<T>().OrderBy(e => e);

, ГДЕ T является типом, например, Моделью. Сотрудник или Плагин. ContactService. Общий. Свяжитесь

Тогда, можно использовать для цикла и его СДЕЛАННОГО.

  ObservableCollection<Plugin.ContactService.Shared.Contact> ContactItems= new ObservableCollection<Contact>();

    foreach (var item in ordered)
    {
       ContactItems.Add(item);
    }
0
ответ дан 24 November 2019 в 08:15
поделиться
using System.Linq;

var yourList = SomeDAO.GetRandomThings();
yourList.ToList().Sort( (thing, randomThing) => thing.CompareThisProperty.CompareTo( randomThing.CompareThisProperty ) );

Красиво! Гетто.

0
ответ дан 24 November 2019 в 08:15
поделиться

Я нашел эту ветку, пока искал решение к точной проблеме, описанной в исходном сообщении. Однако ни один из ответов полностью не соответствовал моей ситуации. Ответ Броуди был довольно близок. Вот моя ситуация и решение, которое я нашел.

У меня есть два списка IList одного и того же типа, возвращенные NHibernate, и они объединили два списка IList в один, отсюда и необходимость сортировки.

Как сказал Броуди, я реализовал ICompare для объекта (ReportFormat), который является типом моего IList:

 public class FormatCcdeSorter:IComparer<ReportFormat>
    {
       public int Compare(ReportFormat x, ReportFormat y)
        {
           return x.FormatCode.CompareTo(y.FormatCode);
        }
    }

Затем я конвертирую объединенный IList в массив того же типа:

ReportFormat[] myReports = new ReportFormat[reports.Count]; //reports is the merged IList

Затем сортирую массив:

Array.Sort(myReports, new FormatCodeSorter());//sorting using custom comparer

Поскольку одномерный массив реализует интерфейс System.Collections.Generic.IList , массив можно использовать так же, как исходный IList.

1
ответ дан 24 November 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: