CSharp · Console
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
public class Program
{
public static void Main()
{
List<SimpleClass> seq = Enumerable.Range(0, 25).Select(x => new SimpleClass(){ OwnNumber = x, ActualNumber = x }).ToList();
for (var i = 0; i < seq.Count(); i++)
{
var res = seq.Test();
foreach (var item in res)
{
Console.WriteLine($"{item.OwnNumber} : {item.ActualNumber}");
}
}
}
}
public class SimpleClass
{
public int OwnNumber { get; set; }
public int ActualNumber { get; set; }
}
public static class SimpleClassHelper
{
private static SimpleClass _sharedSimpleClassHelper;
public static int Apply()
{
int z = 1;
for (var i = 0; i < 1000; i++)
{
z += i;
}
return _sharedSimpleClassHelper.ActualNumber;
}
public static IEnumerable<SimpleClass> Test(this IEnumerable<SimpleClass> sc) =>
sc.AsParallel().Select(s =>
{
_sharedSimpleClassHelper = s;
return new SimpleClass
{
OwnNumber = s.OwnNumber,
ActualNumber = Apply()
};
});
}