public MyDiscreteSampler(T[] values, IEnumerable <float> densities) { Debug.Assert(values.Length == densities.Count(), "Count of densities does not correspond to the count of values!"); m_values = new T[values.Length]; Array.Copy(values, m_values, values.Length); m_sampler = new MyDiscreteSampler(); m_sampler.Prepare(densities); }
public MyDiscreteSampler(List <T> values, IEnumerable <float> densities) { Debug.Assert(values.Count == densities.Count(), "Count of densities does not correspond to the count of values!"); m_values = new T[values.Count]; for (int i = 0; i < values.Count; ++i) { m_values[i] = values[i]; } m_sampler = new MyDiscreteSampler(); m_sampler.Prepare(densities); }
public MyDiscreteSampler(IEnumerable <T> values, IEnumerable <float> densities) { int count = values.Count(); Debug.Assert(count == densities.Count(), "Count of densities does not correspond to the count of values!"); m_values = new T[count]; int i = 0; foreach (var value in values) { m_values[i] = value; i++; } m_sampler = new MyDiscreteSampler(); m_sampler.Prepare(densities); }