Add more types (Dictionary etc)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- csharp
- Ambito
- performance
Direzione di ricerca
Partire dagli esempi di HashSetEnumerator, ToRefLinq, IRefEnumerable e IReadOnlyCollection dell'issue. Determinare quali tipi di raccolta aggiuntivi, incluso Dictionary, necessitano di adattatori e verificare il comportamento di eliminazione dell'enumeratore e le caratteristiche di allocazione di Unity. Il lavoro è completo quando i tipi supportati sono definiti e i relativi adattatori preservano il comportamento previsto senza allocazioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Just tried this and seems to not allocate in Unity. Something more generic like IReadOnlyCollection can't be used as it allocates.
public static RefLinqEnumerable<T, HashSetEnumerator<T>> ToRefLinq<T>(this HashSet<T> c) => new(new(c));
public struct HashSetEnumerator<T> : IRefEnumerable<T>
{
private T curr;
private HashSet<T>.Enumerator ie;
public HashSetEnumerator(HashSet<T> list)
{
ie = list.GetEnumerator();
curr = default;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool MoveNext()
{
bool end = ie.MoveNext();
curr = ie.Current;
if(!end)
ie.Dispose();
return end;
}
public T Current => curr;
}
No idea if that Dispose is correct.
- Lingua principale
- C#
- Stelle
- 172
- Fork
- 8
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ASC-Community/HonkPerf.NET
-
Strong name of RefLinq issueApertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
-
enhancement good first issue
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
Tutte le issue di ASC-Community/HonkPerf.NET
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
stryker-mutator/stryker-net#3892 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
MobiFlight/MobiFlight-Connector#3419 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Kryptos-FR/MarkView.Avalonia#105 ·
I maintainer di solito rispondono entro 1 giorno
-
[辞書]Aperta提案 辞書
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
microsoft/fluentui-blazor#5410 ·
I maintainer di solito rispondono entro 1 giorno