ListSet
List setter writer is IWriterToRef<(List, long), Element> writer implementation, where 'long' is the element index.
IWriter<(int, long), List<int>> listSet;
Creating a writer
ListSet<List, Element> is default list writer for IList<T>.
IWriter<(int, long), List<int>> listSet = new ListSet<List<int>, int>();
List.Create(listType, elementType) also creates the writer.
IWriter<(int, long), List<int>> listSet =
(IWriter<(int, long), List<int>>)
ListSet.Create(typeof(List<int>), typeof(int));
List set be adapted from delegate.
IWriter<(int, long), List<int>> listSet =
DelegateWriter.Writer<(int, long), List<int>>(
((int value, long index) args, List<int> list) =>
list[(int)args.index] = args.value);
ListSetRequest(Type) is a request to build a list set writer.
ListSetRequest listRequest = new ListSetRequest(typeof(List<int>));
IWriter<(int, long), List<int>> listSet =
AccessorServices.Instance
.GetRequired<ListSetRequest, IWriter<(int, long), List<int>>>(listRequest);
Usage
Writer sets an element at index.
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
Full Example
Full example
using System.Collections.Generic;
using Avalanche.Accessor;
using Avalanche.Accessor.List;
using Avalanche.Writer;
public class listset
{
public static void Run()
{
{
#pragma warning disable CS0168
// <01>
IWriter<(int, long), List<int>> listSet;
// </01>
#pragma warning restore CS0168
}
{
// <10>
IWriter<(int, long), List<int>> listSet = new ListSet<List<int>, int>();
// </10>
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
}
{
// <11>
IWriter<(int, long), List<int>> listSet =
(IWriter<(int, long), List<int>>)
ListSet.Create(typeof(List<int>), typeof(int));
// </11>
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
}
{
// <12>
IWriter<(int, long), List<int>> listSet =
DelegateWriter.Writer<(int, long), List<int>>(
((int value, long index) args, List<int> list) =>
list[(int)args.index] = args.value);
// </12>
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
}
{
// <16>
ListSetRequest listRequest = new ListSetRequest(typeof(List<int>));
IWriter<(int, long), List<int>> listSet =
AccessorServices.Instance
.GetRequired<ListSetRequest, IWriter<(int, long), List<int>>>(listRequest);
// </16>
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
}
{
IWriter<(int, long), List<int>> listSet = new ListSet<List<int>, int>();
// <21>
List<int> list = new List<int> { 1, 2, 3 };
listSet.Write((10, 0L), list);
// </21>
}
}
}